既然允许这样做a=5 ; echo $a
,我想知道是否可以在终端中声明列表和其他数据结构(例如元组,字典)?
如果是这样,它们是可变的还是必须是unset
第一个?
答案1
您还可以使用array
;创建数组变量的最简单方法是为其某个索引分配一个值:
TEST[0]=zero
TEST[1]=one
TEST[2]=two
或者,使用:
TEST=(zero one two)
现在,您可以按如下方式访问它:
${TEST[index]}
IE
echo "First Index: ${TEST[0]}"
或者,您也可以通过下列方式之一访问数组中的所有项目:
${TEST[*]}
${TEST[@]}
如需更多帮助,请阅读这个有用的指南
答案2
可能吗?您可以使用列表,而且它是可变的。
尝试这样的操作:
arr=(1 2 3)
echo ${list}
echo ${list[1]}
arr[1]=4
echo ${list}
echo ${list[1]}
echo ${list} | xargs -n 1
而且,对于字典,您需要构建一个哈希函数。
了解如何执行此操作:
https://stackoverflow.com/a/3467959/1585576
使用列表进行迭代很容易xargs
,您还可以将单元测试添加到脚本中:
https://code.google.com/p/shunit2/