我在这个小例子的脚本中隔离了一个问题。这就是我得到: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"
我怎样才能改变我的代码,以获得预期的结果?
UPDATE也许我的第一个例子不够好。我看了一下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 2012-04-26 20:39:52