![当您在终端中输入 sh 时,sh 使用什么提示符?](https://linux22.com/image/1708324/%E5%BD%93%E6%82%A8%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E8%BE%93%E5%85%A5%20sh%20%E6%97%B6%EF%BC%8Csh%20%E4%BD%BF%E7%94%A8%E4%BB%80%E4%B9%88%E6%8F%90%E7%A4%BA%E7%AC%A6%EF%BC%9F.png)
当使用 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 --
。)