"${debian_chroot:+($debian_chroot)} 对比 ${debian_chroot}"

Sam*_*bib 5 bash shell-script

在 ~/.bashrc 我有

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Run Code Online (Sandbox Code Playgroud)

相反为什么不能

PS1='${debian_chroot}\u@\h:\w\$ '
Run Code Online (Sandbox Code Playgroud)

它会完成同样的事情。不是吗?

ilk*_*chu 6

不一样,注意括号:

$ var=foo
$ echo "${var} ${var:+($var)}"
foo (foo)
Run Code Online (Sandbox Code Playgroud)

:+扩张是有使得如果变种是空的那些不被打印。