私はこの小さな例にスクリプトの問題を切り分けました。bash:引用符で囲まれた部分を扱います
$ cmd="test \"foo bar baz\""
$ for i in $cmd; do echo $i; done
test
"foo
bar
baz"
そして、それは私が期待したものです:それは私が何を得るのです
$ cmd="test \"foo bar baz\""
$ for i in $cmd; do echo $i; done
test
"foo bar baz"
は、どのように私は期待どおりの結果を得るために、私のコードを変更できますか?
更新多分私の最初の例は十分ではありませんでした。私はRob Davisの答えを見ましたが、私のスクリプトにその解決策を適用できませんでした。私は自分の問題をよりよく記述するためにスクリプトを簡素化しようとしました。これはスクリプトです:スクリプトの出力に比べ
#!/bin/bash
function foo {
echo $1
echo $2
}
bar="b c"
baz="a \"$bar\""
foo $baz
このことは、予想される出力:
最初の場所でそれを引用するのはなぜexpected script
a a
"b c" "b
私の与えられた例のためによく見えます。残念ながら私はこれをオリジナルのスクリプトに適用できません。私は質問を更新しました、多分あなたはそれを見てみることができます。 – multiholle