![用户定义变量的“$@”扩展](https://linux22.com/image/70286/%E7%94%A8%E6%88%B7%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F%E7%9A%84%E2%80%9C%24%40%E2%80%9D%E6%89%A9%E5%B1%95.png)
我试图让一个(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 上测试。