3

将参数传递给时出现一个错误outlook_DataParsing.sh

$ sh outlook_DataParsing.sh delete node doc('/opt/ws40/contacts.xml')//Directory/Contacts/Contact[@id='22222']

我正在阅读所有论点:

str=$@

错误如下:

-bash: syntax error near unexpected token `('

有谁能够帮我?

4

1 回答 1

5

shell 命令中有许多“特殊”字符,包括 $()[]

其中大部分可以通过将参数括在双引号中来简单地传递

foo "(hello)[]"

但是,这不会修复 $ 符号,因为它适用于变量。您可以改为使用单引号来传递 $ 符号

foo '$im_not_a_variable'

如果一切都失败了,任何字符都可以用反斜杠 \ 转义,包括空格(不需要引号)

foo \(hello\)\[\]\ \$im_not_a_variable
于 2012-08-25T13:19:36.923 回答