shell补-shell数组

发布时间 2023-12-15 11:37:43作者: WeChat2834
shell补-shell数组
  • 回顾变量的赋值方法
    • 直接赋值 : a=1
    • 引用命令结果 : ip=$(hostname -I|awk '{print $1}')
    • 通过read交互示
    • 参数传递:脚本/函数参数 传参

不了解数组之前可以用 while read line这类方法

语法: 数组名称[下标],从0开始

####赋值   比较繁琐
[root@localhost ~]# ip1=10.0.0.1
[root@localhost ~]# ip2=10.0.0.2
[root@localhost ~]# ip3=10.0.0.3
[root@localhost ~]# 
######通过数组 存放 类似内容
######最后可以通过循环取出
[root@localhost ~]# array[0]=10.0.0.1
[root@localhost ~]# array[1]=10.0.0.2
[root@localhost ~]# array[3]=10.0.0.3
[root@localhost ~]# echo $array[0]
10.0.0.1[0]  #####这里就需要注意了要加大括号
[root@localhost ~]# echo ${array[0]}
10.0.0.1
[root@localhost ~]# echo ${array[*]}
10.0.0.1 10.0.0.2 10.0.0.3
[root@localhost ~]# echo ${array[@]}
10.0.0.1 10.0.0.2 10.0.0.3
[root@localhost ~]# 
[root@localhost ~]# echo ${#array[@]}  ####这加#号标识数组元素个数,也可以理解为变量子串中的变量长度。
3
[root@localhost ~]# 

数组赋值方法

赋值方法
直接赋值 [root@localhost ~]# array[0]=10.0.0.1
[root@localhost ~]# array[1]=10.0.0.2
[root@localhost ~]# array[3]=10.0.0.3
批量赋值 [root@localhost ~]# array=(1 3 4 5 )
[root@localhost ~]# echo ${array[*]}
1 3 4 5
[root@localhost ~]# echo ${#array[@]}
4
[root@localhost ~]# array=(7 8 9 {1..6} )
[root@localhost ~]# echo ${#array[@]}
9
[root@localhost ~]# echo ${array[*]}
7 8 9 1 2 3 4 5 6
[root@localhost ~]#注意以空格分隔
从文件中赋值读取文件内容赋值 [root@localhost array]# ips=(`cat ./iptest.txt`)
[root@localhost array]# echo ${ips[*]}
10.0.0.1 10.0.0.2 10.0.0.3
[root@localhost array]# echo ${#ips[*]}
3
[root@localhost array]# echo ${#ips[@]}
3
[root@localhost array]#

shell数组小结

  • 应用场景:分析 文件中的数据
  • 数组创建
    • 直接赋值
    • arr=()
    • 通过arr=($(cat file))
  • 数组的使用
    • att[0]
    • 循环 ${arr[*]} ${arr[@] } $
    • for ip in $
    • c语言for循环(了解)
for ((i=0;i<${#arr[*]};i++)) ;do echo ${arr[$i]};done