在Bash父shell中更改PS1提示符

时间:2012-04-03 10:06:42

标签: macos bash prompt ps1

使用脚本,我是要更改父Bash shell的提示符。我尝试过以下方法:

PS1="Hello World > "

这会更改运行脚本的子shell的提示,但是我将使用哪个命令来更改父shell的提示。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

在所有情况下,父shell必须合作。如果没有合作,unix环境中的子进程就不会影响父进程。

在子shell脚本changePrompt.sh中尝试此操作:

echo 'PS1="Hello World > "'

然后从父shell调用脚本,如下所示:

eval "$(changePrompt.sh)"

或者,另一种方法:来源脚本而不是调用它。 changePrompt.sh

PS1="Hello World > "

这样称呼:

source changePrompt.sh

或简单地说:

. changePrompt.sh

答案 1 :(得分: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

答案 2 :(得分:0)

别名(在您的~/.bashrc~/.bash_aliases中)也是一种好方法,如果它只是为了方便地立即更改提示,然后...

alias miniprompt="PS1='\[\e[32;1m\]$>\[\e[0m\]'"
alias fullprompt="PS1='\u\[\e[34;1m\]@\[\e[36;1m\]\H \[\e[34;1m\]\w\[\e[32;1m\] $ \[\e[0m\]'"

enter image description here