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