【发布时间】:2015-11-25 05:29:59
【问题描述】:
脚本 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
我的预期结果是:
一个
bc
d
谁能告诉我原因,以及如何更改以获得预期的结果,提前谢谢。
【问题讨论】:
脚本 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
我的预期结果是:
一个
bc
d
谁能告诉我原因,以及如何更改以获得预期的结果,提前谢谢。
【问题讨论】:
要存储多个带有空格的参数,最好使用 shell 数组:
ARGS=(a "b c" d)
并将脚本称为
./foo.sh "${ARGS[@]}"
这将打印:
a
b c
d
【讨论】:
bash。