如何启动一个带有修改提示符的Bash子进程。使用env无效:
env PS1="change >" bash --login
不起作用。其结果应与启动进程后使用导出的结果相同:
$ export PS1="change >"
change >
~/.bashrc
必须按照通常的方式进行评估。
bash --rcfile <(cat ~/.bashrc; echo 'PS1="change > "')
这将通过执行用户启动文件的“扩展”版本来保留别名和 co。
--login
,bash将读取您的初始化文件,并重新定义PS1
。(source .bashrc; env PS1="change >" bash --norc)
fg@erwin ~ $ grep FOO ~/.bashrc
export FOO=bar
fg@erwin ~ $ (source ~/.bashrc; env PS1="change> " bash --norc)
change> echo $FOO
bar
bash --rcfile <(echo "export PS1='somethingelse>'")
命令。这个命令使用进程替换创建一个“文件”,其中包含PS1设置,并将其传递给bash。您当前的shell应支持这种替换(bash和zsh均支持)。