当您在终端中输入 sh 时,sh 使用什么提示符?

当您在终端中输入 sh 时,sh 使用什么提示符?

当使用 MAC OS/Terminal 自带的默认 PS1 提示符时,键入 sh 时会获得一个新样式的提示符。

station-4:~ user$ sh
sh-3.2$ 

当您导出自己的 PS1 时,此功能将消失。您输入 sh 后仍会得到您指定的 PS1 提示。这是为什么呢?

station-4:~ user$ export PS1=">>>"
>>>sh
>>>

答案1

“导出”是关键词。我自己没有 Mac,但我猜它的bashrc文件没有出口 $PS1,仅仅设置它,以便bash它本身可以看到变量但不会将它推送到新进程的环境中。(狂欢是 OS X 使用的默认 shell。

您可以使用printenv PS1env | grep ^PS1declare -p PS1查明变量是否是环境的一部分。(declare -x如果变量被导出,则会看到它是否是环境的一部分declare --。)

相关内容