c语言sscanf函数的用法是什么
281
2022-11-17
shell数组详解
文章目录
一、概述二、定义数组
`2.1.索引数组`
方法一方法二
`2.2.关联数组``多维数组`
三、处理数组
`3.1.直接获取元素的值及数组的信息`
1、获取单个元素的值2、获取所有元素的值3、统计数组的长度4、打印数组的下标值5、删除数组元素和数组
`3.2.使用循环的方式遍历数组`
方法一:直接取值方法二:通过下标取值方法三:C语言风格
四、$*和\$@的区别
`4.1.当直接通过echo获取数组所有元素时,它们是一样的效果``4.2.而在循环中它们就有区别了`总结:\${array1[*]}会将数组元素视为一个整体,而\${array1[@]}将所有数组元素视为独立的个体,推荐使用${array1[@]}
五、技巧
`字符串以冒号分隔存入数组`
参考书籍:《Linux Shell核心编程指南》
一、概述
数组是Shell的一种特殊变量,是一组数据的集合,里面的每个数据被称为一个数组元素。
当前Bash仅支持一维索引数组和关联数组,Bash对数组的大小没有限制。
二、定义数组
2.1.索引数组
方法一
array=() #定义一个空数组array1[0]=aarray1[1]=barray1[2]=c
这会得到一个包含三个元素的数组array1
方法二
array2=(a b c)
元素之间以空格隔开
2.2.关联数组
关联数组可以使用非数字作为下标,可以是任意字符串
定义一个名为user_info的数组
declare -A user_infouser_info[name]=devopsuser_info[age]=18或者user_info=([name]=devops [age]=18)
注意:在函数外部定义的关联数组为全局变量,在函数内部定义的关联数组为局部变量
多维数组
数组名[索引1][索引2]=值或者数组名[索引1,索引2]=值
三、处理数组
3.1.直接获取元素的值及数组的信息
1、获取单个元素的值
echo ${array1[0]} #获取第一个元素的值echo ${array1[-1]} #获取最后一个元素的值
2、获取所有元素的值
echo ${array1[*]} 或者用echo ${array1[@]}
3、统计数组的长度
echo ${#array1[*]}
4、打印数组的下标值
echo ${!array1[@]}echo ${!user_info[@]}
5、删除数组元素和数组
unset array2[2] #删除索引数组的第三个元素unset user_info[age] #删除关联数组中索引为age的元素unset array2 #删除数组
3.2.使用循环的方式遍历数组
方法一:直接取值
for i in "${array1[@]}"do echo $idone
方法二:通过下标取值
for i in ${!array1[@]}do echo ${array1[i]}done
方法三:C语言风格
for((i=0;i<${#array1[@]};i++))do echo ${array1[i]}done
四、$*和$@的区别
4.1.当直接通过echo获取数组所有元素时,它们是一样的效果
4.2.而在循环中它们就有区别了
总结:${array1[*]}会将数组元素视为一个整体,而${array1[@]}将所有数组元素视为独立的个体,推荐使用${array1[@]}
五、技巧
字符串以冒号分隔存入数组
string="12:34:56"array=(${string/:/ })
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~