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

Call another shell script with argument which contains whitespce

脚本 A:

#!/bin/bash
. foo.sh
ARGS="a \"b c\" d"
./foo.sh $ARGS

脚本 foo:

#!/bin/bash

echo ""
echo ""
echo ""
echo ""

执行脚本A后,得到如下结果:

一个

"b

c

d

我的预期结果是:

一个

b c

d

谁能告诉我原因,以及如何更改以获得预期结果,在此先感谢。

要使用空格存储多个参数,最好使用 shell 数组:

ARGS=(a "b c" d)

并将脚本调用为

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

这将打印:

a
b c
d