3

に引数を渡す際に 1 つのエラーが発生しました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

シェルコマンドには、$()[] を含む多くの「特殊」文字があります。

これらのほとんどは、パラメーターを二重引用符で囲むことで簡単に渡すことができます

foo "(hello)[]"

ただし、これは変数用であるため、$ 記号は修正されません。代わりに、一重引用符を使用して $ 記号を渡すことができます

foo '$im_not_a_variable'

他のすべてが失敗した場合は、スペースを含むバックスラッシュ \ で任意の文字をエスケープできます (引用符は必要ありません)。

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