Bash:每个登录环境变量

时间:2016-05-07 03:58:52

标签: bash environment-variables

在任何给定的登录会话中,是否有办法在所有bash终端实例中保留环境变量或类似的构造?

我想要做的是有一个变量提示,我可以随心所欲地切换(对于所有终端窗口,未来,也可能是当前的)。转换的过程并不太重要,但我希望它能够成为一个有条不紊的东西。

到目前为止,最好的选择似乎是在.bashrc中有一组硬编码值,我的'切换器'脚本会编辑,但这似乎有点hacky,如果有任何小错误,容易破坏所有内容。

2 个答案:

答案 0 :(得分:1)

无法一次更改每个活动shell中的提示,但您可以定义.bashrc的函数,您可以调用它来随意更改提示。

use_prompt_1 () {
    PS1="\w \$"
}

use_prompt_2 () {
    PS1="\u@\h \$"
}

您还可以使用PROMPT_COMMAND检查您的环境以选择提示。在您的.bashrc中添加以下内容:

dynamic_prompt () {
    if [[ $PWD =~ some_regex ]]; then
        use_prompt_1
    else
        use_prompt_2
    fi
}

PROMPT_COMMAND=dynamic_prompt

答案 1 :(得分:1)

我会选择最简单的解决方案:将数据写入文件而不是变量。

您还可以在.bashrc中创建一些帮助程序以自动检索/设置值。文件似乎满足您的所有要求。

编辑:您也可以让助手在文件的每次登录时设置变量。