Shell数组应用解析以及对脚本调试操作
程序员文章站
2022-07-12 12:11:39
...
文章目录
前言
Shell脚本是我们经常使用的,其中包括许多的类别,数组就是其中之一,以及对Shell脚本的调试。
一 Shell数组
1.1 应用场景包括
获取数组长度
获取元素长度
遍历元素
元素切片
元素替换
元素删除
.....
例如:
a(x1,x2,x3,x4,x5)
a:为数组
x1,x2,x3,x4,x5:为元素
for i in ( ....) 遍历条件 (按顺序读值的过程叫遍历)
1.2 数组定义的方法
方法一:数组名=(value0 value1 value2 ...)
方法二:数组名=([0]=value [1]=value [2]=value ... )[ ]:下标
方法三:列表名=“value0 value1 value2 ... ”
数组名=($列表名)
方法四:数组名[0]=“value”
数组名[1]=“value”
数组名[2]=“value”
例如:
方法一:[aaa@qq.com ~]# b=(1 2 3 4 5 )
方法二:[aaa@qq.com ~]# c=([0]=10 [1]=20 [2]=30)
方法三:[aaa@qq.com ~]# list="a b c d"
[aaa@qq.com ~]# d=($list)
方法四:[aaa@qq.com ~]# e[0]=11
[aaa@qq.com ~]# e[1]=12
[aaa@qq.com ~]# e[2]=13
[aaa@qq.com ~]# e[3]=14
1.3 数组包括的数据类型
数值类型
字符类型
使用“”或‘’定义
1.4 Shell数组操作
1.4.1 获取数组长度(控制循环次数)
${#数组名[@/*]}
1.4.2 读取某下标赋值
${数组名[下表]}
1.4.3 数组遍历
1.4.4 实例设置:
1.数组长度与下标赋值
[aaa@qq.com ~]# b=(1 2 3 4 5 )
[aaa@qq.com ~]# echo ${#b[*]}
5
[aaa@qq.com ~]# echo ${#b[@]}
5
[aaa@qq.com ~]# echo ${b[0]}
1
[aaa@qq.com ~]# echo ${b[4]}
5
[aaa@qq.com ~]# echo ${b[@]}
1 2 3 4 5
c=([0]=10 [1]=20 [2]=30)
[aaa@qq.com ~]# echo ${#c[@]}
3
[aaa@qq.com ~]# echo ${c[0]}
10
[aaa@qq.com ~]# echo ${c[2]}
30
[aaa@qq.com ~]# echo ${c[*]}
10 20 30
2.数组遍历
[aaa@qq.com ~]# vi num.sh
[aaa@qq.com ~]# chmod +x num.sh
[aaa@qq.com ~]# ./num.sh
#!/bin/bash
# 数组循环
a=(1 2 3 4 5)
for num in ${a[*]}
do
echo $num
done
1.4.5 数组切片
${数组名[@/*]:起始位置:长度}
1.4.6 数组的切换
${数组名[@/*]/查找字符/替换字符}
1.4.7 数组删除
unset
1.4.8 实例设置:
1.数组切片
[aaa@qq.com ~]# vi num.sh
[aaa@qq.com ~]# ./num.sh
#!/bin/bash
# 数组循环
a=(1 2 3 4 5)
for num in ${a[*]:0:4}
do
echo $num
done
2.数组的切换
[aaa@qq.com ~]# b=(1 2 3 4 5 )
[aaa@qq.com ~]# echo ${b[@]/3/33} (在输出时替换,本质未变)
1 2 33 4 5
[aaa@qq.com ~]# echo ${b[@]}
1 2 3 4 5
[aaa@qq.com ~]# b=${b[@]/3/33} (改变本源)
[aaa@qq.com ~]# echo $b
1 2 33 4 5
3.数组删除
[aaa@qq.com ~]# unset b
[aaa@qq.com ~]# echo ${b[@]}
无结果
二 Shell脚本调试
2.1 echo命令
2.2 bash命令
2.2.1 命令语法
sh [-nvx] 脚本名
2.2.2 常用选项
-n,-v,-x
-n:不会执行该脚本,仅查询脚本语法是否有问题,如果没有语法问题就不显示任何内容,如果有问题会提醒报错。
-v:在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误,也会给出错误提示。
-x:将执行的脚本内容输出到屏幕上,这个是对调试很有用的参数。
2.3 set命令
set -x:开启调节模式
set +x:关闭调节模式
2.4 实操解析
[aaa@qq.com ~]# vi grade1.sh
[aaa@qq.com ~]# chmod +x grade1.sh
[aaa@qq.com ~]# ./grade1.sh
#!/bin/bash
set -x //开启调试模式
read -p "请输入你的分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]
then
echo "$GRADE 分!优秀" set +x //关闭调试模式
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]
then
echo "$GRADE 分,合格" else
echo "$GRADE 分?不合格"
fi
总结
通过以上对Shelll数组以及对脚本调试操作的学习,可以更加深入的了解Shell脚本,为更好的运用打下了基础。
上一篇: 第一个shell脚本+执行+调试
下一篇: Linux shell基础1
推荐阅读