Shell
使用者定義變數的“$@”擴展
我正在嘗試讓(bourne shell)變數像“ $@ ”一樣擴展,因此它會產生多個單詞,其中一些單詞保留了空格。我嘗試以許多不同的方式定義變數,但仍然無法使其工作:
#!/bin/sh n=\"one\ two\"\ three for i in "$n"; do echo $i done
我想定義變數,以便腳本
one two
首先輸出,然後three
是下一次迭代,如果你用“ $@'one two' three
”替換引用的變數並作為參數傳遞,你會得到什麼。“ $@ ” 只是魔術嗎?
所以 bourne shell (IIRC) 不支持數組。您仍然可以使用“$@”
set -- "one two" three for i in "${@}" ; do echo "$i" done
輸出:
one two three
在 AIX 7.1 bsh 上測試。