我正在尝试为非交互式非登录
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.