我试图让一个(bourne shell)变量像“$@" 因此它会生成多个单词,其中一些单词保留了空格。我尝试以多种不同的方式定义变量,但仍然无法使其工作:
#!/bin/sh
n=\"one\ two\"\ three
for i in "$n"; do
echo $i
done
我想定义变量,以便脚本one two
首先输出,然后three
进行下一次迭代,如果将引用的变量替换为“,就会得到这样的结果”$@”并'one two' three
作为参数传递。
是 ”$@“只是魔法?
答案1
所以 bourne shell (IIRC) 不支持数组。您仍然可以使用“$@”
set -- "one two" three
for i in "${@}" ; do
echo "$i"
done
输出:
one two
three
在 AIX 7.1 bsh 上测试。