现在我用一种丑陋的方式在shell中创建数组,例如
ARG_ARRAY=(num1 num2 num3 num4 num5 num6 num7 num8 num9 num10)
这可以更优雅吗?像C方式,例如
ARG_ARRAY=num[10]
答案 0 :(得分:4)
$ ARG_ARRAY=(num{1..10})
$ echo ${ARG_ARRAY[@]}
num1 num2 num3 num4 num5 num6 num7 num8 num9 num10
答案 1 :(得分:3)
如果要显式声明ARG_ARRAY
是一个数组,请使用(bash):
declare -a ARG_ARRAY
然后您可以使用以下方式设置其值:
ARG_ARRAY[$index]=whatever
您无法为索引数组指定大小,如果您尝试访问索引,则尚未设置的索引将为空。
答案 2 :(得分:2)
如果要声明数组常量,可以在设置值后轻松完成:
$ 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