4

使用脚本,我将更改父 Bash shell 的提示。我尝试了以下方法:

PS1="Hello World > "

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

4

3 回答 3

5

在所有情况下,父 shell 都必须合作。unix 环境中的子进程没有父进程的合作是无法影响父进程的。

在 subshel​​l 脚本中试试这个changePrompt.sh

echo 'PS1="Hello World > "'

然后像这样从父 shell 调用脚本:

eval "$(changePrompt.sh)"

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

PS1="Hello World > "

像这样称呼它:

source changePrompt.sh

或者简单地说:

. changePrompt.sh
于 2012-04-03T14:16:49.947 回答
1

你必须编辑 .bash_rc 文件,用你想要的......直接添加 PS1="blah" 或其他什么。

.bash_rc 文件应该在你的主目录 /user/home 或其他任何地方(它隐藏所以“ls -la”)

当你编辑它时,它应该可以工作(source .bash_rc)——假设相同的目录

如果这不起作用,请尝试 .rc 文件....尽管对于所有 shell(或者至少应该是),但这是系统范围的......请在此处尝试以获取更多信息:

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

于 2012-04-03T10:10:12.520 回答
0

别名(在你的~/.bashrcor~/.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\]'"

在此处输入图像描述

于 2018-10-09T12:10:45.027 回答