在任何给定的登录会话中,是否有办法在所有bash终端实例中保留环境变量或类似的构造?
我想要做的是有一个变量提示,我可以随心所欲地切换(对于所有终端窗口,未来,也可能是当前的)。转换的过程并不太重要,但我希望它能够成为一个有条不紊的东西。
到目前为止,最好的选择似乎是在.bashrc中有一组硬编码值,我的'切换器'脚本会编辑,但这似乎有点hacky,如果有任何小错误,容易破坏所有内容。
答案 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中创建一些帮助程序以自动检索/设置值。文件似乎满足您的所有要求。
编辑:您也可以让助手在文件的每次登录时设置变量。