如何用改變後的提示啓動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