>  Q&A  >  본문

为什么linux PS1变量的内容用单引号而非双引号围起来?

书上说单引号表示原字符,而双引号能表示出内在含义.那为何linux中PS1变量用单引号围起来却能表达出内在含义?
比如这样:

[root]#set |grep PS1
PS1='[\u]\$'
[root]#

百度也查到了同样的问题,但明显没回答好

PHPzPHPz2741일 전672

모든 응답(3)나는 대답할 것이다

  • PHPz

    PHPz2017-04-17 12:10:17

    这里PS1的值就是[\u]\$, 最后之所以显示成[root]#完全是因为bash又做了一次解释操作!
    因为bash看到[\u]\$后需要解释最终如何显示, 按照bash的规则, \u就是显示登录的账号名, \$你自己搜下吧.

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 12:10:17

    单引号不转义,双引号转义,比如a='123',那么
    echo ‘a$a’
    输出为a$a
    echo ”a$a“
    输出为a123

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 12:10:17

    请问你的文件解决了吗?我也有同样的烦恼,在网上没搜到答案

    회신하다
    0
  • 취소회신하다