在Bash父外壳中更改PS1提示

bat*_*a13 4 macos bash prompt ps1

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

PS1="Hello World > "
Run Code Online (Sandbox Code Playgroud)

这将更改运行脚本的子外壳的提示符,但是我将使用哪个命令来更改父外壳的提示符。有任何想法吗?

Alf*_*lfe 5

在所有情况下,父外壳必须配合。UNIX环境中的子进程如果没有其合作关系就无法影响父进程。

在subshel​​l脚本中尝试一下changePrompt.sh

echo 'PS1="Hello World > "'
Run Code Online (Sandbox Code Playgroud)

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

eval "$(changePrompt.sh)"
Run Code Online (Sandbox Code Playgroud)

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

PS1="Hello World > "
Run Code Online (Sandbox Code Playgroud)

这样称呼它:

source changePrompt.sh
Run Code Online (Sandbox Code Playgroud)

或者简单地:

. changePrompt.sh
Run Code Online (Sandbox Code Playgroud)