如何用改变后的提示启动bash子进程。使用env不起作用:改变提示开始bash过程PS1
env PS1="change >" bash --login
不起作用。结果应该是一样的进程启动后使用导出:
$ export PS1="change >"
change >
~/.bashrc
必须进行评估和往常一样。
如何用改变后的提示启动bash子进程。使用env不起作用:改变提示开始bash过程PS1
env PS1="change >" bash --login
不起作用。结果应该是一样的进程启动后使用导出:
$ export PS1="change >"
change >
~/.bashrc
必须进行评估和往常一样。
另一个解决方案是:
bash --rcfile <(cat ~/.bashrc; echo 'PS1="change > "')
这通过执行和用户的“扩展”版本startupfile保持别名和合作。
该行为是正常的:与--login
,bash将读取您的初始化文件,并重新定义PS1
。
你可以试试:
(source .bashrc; env PS1="change >" bash --norc)
这个工作对我来说:
[email protected] ~ $ grep FOO ~/.bashrc
export FOO=bar
[email protected] ~ $ (source ~/.bashrc; env PS1="change> " bash --norc)
change> echo $FOO
bar
但它只能因为.bashrc中没有来源,重新定义PS1的任何文件。
尝试bash --rcfile <(echo "export PS1='somethingelse>'")
。这使用进程替换来创建一个包含PS1设置的“文件”并将其提供给bash。你当前的shell应该支持这种替换(bash和zsh)。
谢谢。这是我的门票。 我在.bashrc,.profile和其他被干扰的脚本中有很多东西。 – CSkau 2012-02-29 12:46:54
应该已经添加到fineprint。我必须运行.bashrc。 – 2011-12-31 12:08:42
你可以粘贴它吗?如果它来源重新定义PS1的文件,你几乎注定了... – fge 2011-12-31 12:11:05
查看编辑的解决方案 – fge 2011-12-31 12:17:53