如何使用更改的提示启动bash子进程.使用env不起作用:
env PS1="change >" bash --login
Run Code Online (Sandbox Code Playgroud)
不起作用.结果应与启动进程后使用export相同:
$ export PS1="change >"
change >
Run Code Online (Sandbox Code Playgroud)
~/.bashrc
必须像往常一样进行评估.
A.H*_*.H. 13
另一种解决方案是:
bash --rcfile <(cat ~/.bashrc; echo 'PS1="change > "')
Run Code Online (Sandbox Code Playgroud)
这通过执行用户启动文件的"扩展"版本来保留别名和co.
行为是正常的:使用--login
,bash将读取您的初始化文件并重新定义这些文件PS1
.
你可以尝试:
(source .bashrc; env PS1="change >" bash --norc)
Run Code Online (Sandbox Code Playgroud)
这对我有用:
fg@erwin ~ $ grep FOO ~/.bashrc
export FOO=bar
fg@erwin ~ $ (source ~/.bashrc; env PS1="change> " bash --norc)
change> echo $FOO
bar
Run Code Online (Sandbox Code Playgroud)
但它只能起作用,因为.bashrc不会提供任何重新定义PS1的文件.
试试bash --rcfile <(echo "export PS1='somethingelse>'")
。这使用进程替换来创建一个“文件”,其中包含 PS1 设置并将其提供给 bash。您当前的 shell 应该支持这种替换(bash 和 zsh 支持)。
归档时间: |
|
查看次数: |
3103 次 |
最近记录: |