shell数组变量

简介:

shell中数组定义:

可以整体定义数组:

1
ARRAY_NAME=(value0 value1 value2 value3 ...)

或者:

1
2
3
4
5
6
7
ARRAY_NAME=(
value0
value1
value2
value3
...
)

此时数组的下标默认是从0开始的,还可以单独定义数组的各个分量:

1
2
3
4
ARRAY_NAME[0]=value0
ARRAY_NAME[1]=value1
ARRAY_NAME[n]=valuen
...

可以不使用连续的下标,而且下标的范围没有限制。

取得数组中的元素:

1
valuen=${ARRAY_NAME[n]}

一次性将数组中所有元素的值得到:

1
echo  ${ARRAY_NAME[@]}

取得数组元素的个数

1
length=${ #ARRAY_NAME[@]}  或者  length=${#ARRAY_NAME[*]}

取得数组单个元素的长度

1
lengthn=${ #ARRAY_NAME[n]}

数组遍历:

使用while循环遍历数组:

1
2
3
4
5
6
7
i=0
length=${ #ARRAY_NAME[*]}
while  [ $i -lt $length ] ;  do
valuei=${ARRAY_NAME[$i]}
...
let  i++
done

使用for循环遍历数组:

1
2
3
4
for  value  in  ${ARRAY_NAME[*]} ;  do
valuei=value
...
done

清空数组:

清空单个元素:

1
ARRAY_NAME[n]=

将整个数组清空:

1
2
3
unset  ARRAY_NAME
或者:
ARRAY_NAME=

应该注意unset后的变量不应该加$。加$会清空以ARRAY_NAME的值为名称的变量。










本文转自 SoulMio 51CTO博客,原文链接:http://blog.51cto.com/bovin/1929333,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
Shell Python
python 和shell 变量互相传递
python 和shell 变量互相传递
75 0
|
2月前
|
存储 Shell
Shell 数组
【10月更文挑战第16天】
35 3
|
2月前
|
Shell PHP 索引
Shell 数组
10月更文挑战第2天
29 1
|
2月前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
30 0
|
3月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
3月前
|
Java Shell Linux
Shell 变量设置
Shell设置变量
56 5
|
4月前
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
55 10
|
3月前
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
33 0
|
4月前
|
Shell
[shell]在curl测试的data参数中引用变量
[shell]在curl测试的data参数中引用变量
246 1
|
5月前
|
分布式计算 大数据 Shell
MaxCompute产品使用合集之odps shell如何将ech变量的结果集合写入文件,并且指定服务器的位置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
53 10