我应该还是不应该在 shell 脚本中为变量加上引号?
例如,以下是否正确:
xdg-open $URL
[ $? -eq 2 ]
或
xdg-open "$URL"
[ "$?" -eq "2" ]
如果是这样,为什么?
最佳答案
一般规则:如果它可以为空或包含空格(或任何空格)或特殊字符(通配符),则引用它。不使用空格引用字符串通常会导致 shell 将单个参数分解为多个参数。
$?
不需要引号,因为它是一个数值。 $URL
是否需要它取决于您在其中允许的内容以及是否仍需要参数(如果它为空)。
出于习惯,我倾向于总是引用字符串,因为这样更安全。
https://stackoverflow.com/questions/10067266/