当使用 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 PS1
或env | grep ^PS1
来declare -p PS1
查明变量是否是环境的一部分。(declare -x
如果变量被导出,则会看到它是否是环境的一部分declare --
。)