在sh中初始化数组

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

bash中,这将是:

list=(`seq 1 4`) 

在嘘,我试图这样做:

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

我得到一个错误,虽然每个迭代说:

 list[0]=1: not found 

我做错了什么,如何解决?

POSIX sh不支持数组。 你需要一个更高级的shell,比如bashzsh或者ksh

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

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