我是否应该在shell脚本中用引号括住变量?
例如,以下各项是否正确:
xdg-open $URL
[ $? -eq 2 ]
或
xdg-open "$URL"
[ "$?" -eq "2" ]
如果是,为什么?
我是否应该在shell脚本中用引号括住变量?
例如,以下各项是否正确:
xdg-open $URL
[ $? -eq 2 ]
或
xdg-open "$URL"
[ "$?" -eq "2" ]
如果是,为什么?
一般规则:如果它可以是空的或包含空格(或任何真正的空格)或特殊字符(通配符),则引用它.不引用带空格的字符串通常会导致shell将单个参数分解为多个参数.
$?
不需要引号,因为它是一个数值.$URL
是否需要它取决于你在里面允许什么,如果它是空的,你是否还想要一个参数.
出于习惯,我总是引用字符串,因为这样更安全.