使用包含whitespce的参数调用另一个shell脚本

时间:2015-08-31 08:24:39

标签: linux shell arguments

脚本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

有人可以告诉我原因,以及如何改变以获得预期的结果,在此先感谢。

1 个答案:

答案 0 :(得分:1)

使用white-spaces存储多个参数以更好地使用shell数组:

ARGS=(a "b c" d)

并将脚本调用为

./foo.sh "${ARGS[@]}"

这将打印:

a
b c
d