2012-04-03 29 views
1

使用腳本,我改變了父Bash shell的提示。我曾嘗試以下:更改Bash父shell中的PS1提示

PS1="Hello World > " 

這改變了子shell,該腳本運行的提示,但該命令我會用它來改變父shell的提示。有任何想法嗎?

+3

沒有辦法子進程來改變它的父進程,而不從父合作。你的例子表明你主要試圖弄清楚這一點。如果是這樣,你現在就完成了。如果你需要解決一個問題,或許你可以安排父母合作,比如'PS1 = $(subshel​​l commands ...)' – tripleee 2012-04-03 10:25:37

+0

你應該明確你想要完成的是什麼,而不是你想要完成什麼它。這樣我們可以更好地理解你想要做什麼,並幫助你找到正確的解決方案。 – Patrick 2012-04-03 11:43:03

+0

我希望將命令提示符更改爲「Hello World>」,但如果可能我不希望它是永久的 – batsta13 2012-04-03 11:50:53

回答

2

在所有的C請母殼必須配合。如果沒有合作,unix環境下的子進程不會影響父進程。

在子shell腳本changePrompt.sh試試這個:

echo 'PS1="Hello World > "' 

再從這樣的父進程調用腳本:

eval "$(changePrompt.sh)" 

或者,不同的方法:源腳本,而不是調用它。 changePrompt.sh

PS1="Hello World > " 

這樣稱呼它:

source changePrompt.sh 

或者乾脆:

. changePrompt.sh 
1

你必須編輯.bash_rc文件,用你想要的......直接添加PS1 =「blah」或其他。

的.bash_rc文件應該在你的主目錄/用戶/家庭或任何(其隱藏起來的「ls -la」)

當你編輯它,它的源和它應該工作(來源。 bash_rc) - 假設相同的目錄

如果不起作用嘗試.rc文件....這是系統範圍,但所有shell(或至少它應該是).....試試這裏獲取更多信息:

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html --- here

+0

我必須能夠更改腳本內的父shell的提示 – batsta13 2012-04-03 10:55:34

+0

更具體一些,請執行以下操作:你的意思是父母的殼?根shell?你登錄的第一個shell? – Ryan 2012-04-03 10:59:51

+0

當你第一次打開終端時,你會得到這個外殼 – batsta13 2012-04-03 11:46:05