什么时候需要引用命令行参数?

什么时候需要引用命令行参数?

什么时候需要引用命令行参数?

答案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则可能会将其解释为fooemoty$bar未定义,甚至会产生错误。

bar=qux

# create directory fooqux
mkdir foo$bar

# create directory foo$bar
mkdir 'foo$bar'

作为一种特殊情况,例如在 bash 中,你可以引用$@(当前命令的参数)以确保它们被传递给另一个命令单独引用看这里了解更多信息。

相关内容