我想在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,比如bash
, zsh
或者ksh
。
如果你真的想使用数组,你可以通过编写你自己的数组函数来模拟它们。 我不打算通过给你一个完整的功能来鼓励这个:-)但是这里的要点是:
$ f0=yay $ t=0 $ eval echo f$t f0 $ eval echo \$f$t yay