我想在sh中初始化一个数组。
在bash中:
list=(`seq 1 4`)
在sh中我尝试这样做:
for i in `seq 1 4`; do
list[$((i-1))]="$i"
done
虽然每次迭代都会出错:
list[0]=1: not found
我做错了什么以及如何解决这个问题?
答案 0 :(得分:4)
POSIX sh不支持数组。你需要一个更高级的shell,例如bash
,zsh
或ksh
。
答案 1 :(得分:1)
如果你真的想使用数组,你可以通过编写自己的数组函数来捏造它们。我不打算通过给你一个完整的功能来鼓励这个:-)但这里是要点:
$ f0=yay
$ t=0
$ eval echo f$t
f0
$ eval echo \$f$t
yay