在sh中初始化数组

时间:2013-12-08 16:33:54

标签: bash unix scripting sh

我想在sh中初始化一个数组。

在bash中:

list=(`seq 1 4`)

在sh中我尝试这样做:

    for i in `seq 1 4`; do
        list[$((i-1))]="$i"
    done

虽然每次迭代都会出错:

list[0]=1: not found

我做错了什么以及如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

POSIX sh不支持数组。你需要一个更高级的shell,例如bashzshksh

答案 1 :(得分:1)

如果你真的想使用数组,你可以通过编写自己的数组函数来捏造它们。我不打算通过给你一个完整的功能来鼓励这个:-)但这里是要点:

$ f0=yay 
$ t=0
$ eval echo f$t
f0
$ eval echo \$f$t
yay