以下内容来自什么https://unix.stackexchange.com/a/154290/674意思是?
一般来说,在 zsh 以外的 shell 中,双引号外的 $PATH 当值包含空格或其他特殊字符时会中断,但是在任务中,这是安全的
你能举一些例子吗?谢谢。
答案1
简单赋值中的变量(例如a=$b
)是根据定义(即 POSIX 规范)定义的,通常不需要引用——无论如何,在大多数情况下。这是因为在这些赋值中,“字符串分割”和“通配符”(即空格和通配符,例如*
)不会扩展。
在其他情况下,除了赋值之外,变量 ( echo $b
)是扩展——包括空格(字符串分割)——因此应该用引号引起来(echo "$b"
),以防止出现问题,以防它包含空格。例如,考虑一下我是否不使用echo
作为示例,而是使用另一个命令:cmd $b
如果 中有空格,则将接收多个参数$b
,但cmd "$b"
即使有空格,也将接收一个参数。