linux – 为非交互式shell设置环境变量

我正在尝试为非交互式非登录
shell设置环境变量.我知道bash在执行命令之前会读取〜/ .bashrc的内容.在脚本的开头有一个部分:

*# If not running interactively, don't do anything

case $- in
*i*) ;;
  *) return;;
esac*

所以我想如果我在它上面添加一些内容,无论shell是否具有交互性,它都会生效:

export VAR=something

# If not running interactively, don't do anything

case $- in
*i*) ;;
  *) return;;
esac

然而它不起作用:(.我想避免使用$BASH_ENV因为它弄乱了我的xkb设置.我重新映射了/usr/share / X11 / xkb / symbols / pc中的一些键.如果我设置$BASH_ENV,它将只加载默认的键盘映射.

最佳答案 Ubuntu的解决方案:在/ etc / environment中设置变量,它适用于所有用户和所有类型的shell.

点赞