1

シェルスクリプトを作成して、次のような入力パラメータを取得しようとしています:

./test abc def ghi

echo $*スクリプト内に がある場合、パラメーターをリストダウンしますが、引用符は次のように消えます

./test abc "def ghi"--> abc def ghi

./test abc \"def ghi\"この問題は解決できますが、バックスラッシュを使用してコマンドを実行したくありません。echo $2のように、その中の引用を解決しません./test abc "def ghi "jkl" mno"

それを解決する他の方法はありますか?ありがとうございました:)

4

2 に答える 2

3

次のように、二重引用符を一重引用符で囲むことでそれを行うことができます。

./test abc '"def ghi"'

説明:

単一引用符で囲まれたものはすべて、シェルによって文字列リテラルとして解釈されます。ストロング クォーティングとウィーク クォーティングの詳細については、こちらを参照してください。

于 2012-12-05T02:19:24.317 に答える
2

一重引用符も使用できます。

./test abc '"def ghi"'
于 2012-12-05T02:19:31.773 に答える