IQA*_*eas 2 syntax bash quotes ps1
.bashrc基于Debian的系统的默认文件设置$PS1如下:
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Run Code Online (Sandbox Code Playgroud)
令我困惑的是那${debian_chroot}部分.根据StackOverflow:bash中单引号和双引号之间的差异,如果在定义字符串时使用单引号,$则应将字符视为文字,而不是评估变量.
这是不是意味着Bash应该实际打印出来${debian_chroot:...,而不是该变量的值?或者这里涉及更多语法规则?
您通常是正确的,除了PS1在运行时再次扩展值作为生成提示的一部分.这特别是允许在运行时进行扩展.
PS1='$PWD: '将$PWD在显示提示时展开,以便您始终可以看到当前目录.
PS1="$PWD: "$PWD定义提示时将展开,以便您始终可以看到定义提示时所在的目录.