脚本A:
#!/bin/bash
. foo.sh
ARGS="a \"b c\" d"
./foo.sh $ARGS
脚本foo:
#!/bin/bash
echo "$1"
echo "$2"
echo "$3"
echo "$4"
执行脚本A后,得到以下结果:
一
“B
C“
d
我的预期结果是:
一
b c
d
有人可以告诉我原因,以及如何改变以获得预期的结果,在此先感谢。
答案 0 :(得分:1)
使用white-spaces存储多个参数以更好地使用shell数组:
ARGS=(a "b c" d)
并将脚本调用为
./foo.sh "${ARGS[@]}"
这将打印:
a
b c
d