什么时候需要引用命令行参数?
答案1
您需要引用它,否则 shell 的解释可能与您想要的有所不同。
举几个例子:
您可以引用字符串参数,foo bar
以防止程序由于空格而将其解释为两个参数。
# results in two directories, 'foo' and 'bar'.
mkdir foo bar
# results in one directory named 'foo bar'
mkdir "foo bar"
# you could also escape the space to prevent interpretation as argument separator
mkdir foo\ bar
您还可以引用以防止对您的输入进行某些特殊解释。如果 shell 使用$
来指示变量名,foo$bar
则可能会将其解释为foo
emoty$bar
未定义,甚至会产生错误。
bar=qux
# create directory fooqux
mkdir foo$bar
# create directory foo$bar
mkdir 'foo$bar'
作为一种特殊情况,例如在 bash 中,你可以引用$@
(当前命令的参数)以确保它们被传递给另一个命令单独引用。看这里了解更多信息。