繁体   English   中英

如何在shell中创建一个数组?

[英]How to make an array in shell?

现在我用一种丑陋的方式在shell中创建数组,例如

ARG_ARRAY=(num1 num2 num3 num4 num5 num6 num7 num8 num9 num10)

这会更优雅吗? 像C方式,例如

ARG_ARRAY=num[10]
$ ARG_ARRAY=(num{1..10})

$ echo ${ARG_ARRAY[@]}
num1 num2 num3 num4 num5 num6 num7 num8 num9 num10

如果要显式声明ARG_ARRAY是一个数组,请使用(bash):

declare -a ARG_ARRAY

然后您可以使用以下值设置其值:

ARG_ARRAY[$index]=whatever

您无法为索引数组指定大小,如果您尝试访问它们,则尚未设置的索引将仅为空。

如果要声明数组常量 ,可以在设置值后轻松完成:

$ ARG_ARRAY=(num1 num2 num3 num4 num5 num6 num7 num8 num9 num10)
$ declare -r ARG_ARRAY

这显然保护了整个阵列:

$ ARG_ARRAY=(new)
bash: ARG_ARRAY: readonly variable

它还可以保护单个元素不被更改:

$ ARG_ARRAY[0]=new
bash: ARG_ARRAY: readonly variable

...并插入:

$ ARG_ARRAY[20]=new
bash: ARG_ARRAY: readonly variable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM