引用符と二重引用符付きの引数をbashスクリプトに渡す


11

この時点で私は持っています:

#!/bin/bash
screen -p 'ScreenName' -x eval 'stuff '"'"$@"'"'\015'
echo eval 'stuff '"'"$@"'"'\015'

しかし、スクリプトを次のように呼び出すと、

# script.sh asd "asd" 'asd'

私の引数として渡された:asd asd asd

そして私は出力を得ます:

eval stuff 'asd asd asd'\015

私はaを除く:asd "asd" 'asd'

スクリプトを変更して、引数行全体をすべて引用符で渡すにはどうすればよいですか?

回答:


7

シェルが引用符をスクリプトに渡していない。引用符を渡す場合は、バックスラッシュでエスケープします。

# ./script.sh asd \"asd\" \'asd\'

1
それは私が望むものではありませんが、とにかく他の解決策はありません(一晩の検索に費やしました)。
アーサーハルマ2012

解決策は何
Jason

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.