是否可以在终端中定义一个列表?

是否可以在终端中定义一个列表?

既然允许这样做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/

相关内容