书上说单引号表示原字符,而双引号能表示出内在含义.那为何linux中PS1变量用单引号围起来却能表达出内在含义? 比如这样:
[root]#set |grep PS1 PS1='[\u]\$' [root]#
百度也查到了同样的问题,但明显没回答好
学习是最好的投资!
这里PS1的值就是[\u]\$, 最后之所以显示成[root]#完全是因为bash又做了一次解释操作! 因为bash看到[\u]\$后需要解释最终如何显示, 按照bash的规则, \u就是显示登录的账号名, \$你自己搜下吧.
PS1
[\u]\$
[root]#
bash
\u
\$
单引号不转义,双引号转义,比如a='123',那么 echo ‘a$a’ 输出为a$a echo ”a$a“ 输出为a123
请问你的文件解决了吗?我也有同样的烦恼,在网上没搜到答案
这里
PS1
的值就是[\u]\$
, 最后之所以显示成[root]#
完全是因为bash
又做了一次解释操作!因为
bash
看到[\u]\$
后需要解释最终如何显示, 按照bash的规则,\u
就是显示登录的账号名,\$
你自己搜下吧.单引号不转义,双引号转义,比如a='123',那么
echo ‘a$a’
输出为a$a
echo ”a$a“
输出为a123
请问你的文件解决了吗?我也有同样的烦恼,在网上没搜到答案