有人可以告诉我是否应该在Shell脚本中的变量周围加上引号吗?
例如,以下是正确的:
xdg-open $URL [ $? -eq 2 ]
要么
xdg-open "$URL" [ "$?" -eq "2" ]
如果是这样,为什么?
一般规则:如果它可以为空或包含空格(或任何空白)或特殊字符(通配符),则将其引号。不使用空格引用字符串通常会导致外壳将单个参数分解为多个参数。
$?因为它是数字值,所以不需要引号。是否$URL需要它取决于您在其中允许的内容以及是否为空(如果为空)。
$?
$URL
我倾向于总是出于习惯而引用字符串,因为这样做更安全。