Shell数组

Shell数组

应用场景

  • 获取数组长度
  • 获取元素长度
  • 遍历元素
  • 元素切片
  • 元素替换
  • 元素删除

定义方法

方法一:数组名=(value0 value1 value2 ...)

方法二:数组名=[0]=value [1]=value [2]=value ...[ ]:下标

方法三:列表名=“value0 value1 value2 ... ”
       数组名=($列表名)
       
方法四:数组名[0]=“value”
       数组名[1]=“value”
       数组名[2]=“value”

数据类型

数值类型
字符类型
使用 “” 或 ‘’ 定义

数组操作

${#数组名[@/*]}                获取数组长度(控制循环次数)
${数组名[下表]}                读取某下标赋值
${数组名[@/*]:起始位置:长度}    数组切片
${数组名[@/*]/查找字符/替换字符}    数组切换
unset                         数组删除

示例

[root@server2 ~]# b=(1 2 3 4 5 )
[root@server2 ~]# echo ${#b[*]}
5
[root@server2 ~]# echo ${#b[@]}
5
[root@server2 ~]# echo ${b[0]}
1
[root@server2 ~]# echo ${b[4]}
5
[root@server2 ~]# echo ${b[@]}
1 2 3 4 5


c=([0]=10 [1]=20 [2]=30)
[root@server2 ~]# echo ${#c[@]}
3
[root@server2 ~]# echo ${c[0]}
10
[root@server2 ~]# echo ${c[2]}
30
[root@server2 ~]# echo ${c[*]}
10 20 30

数组遍历示例

[root@server2 ~]# vim num.sh

#!/bin/bash
# 数组循环
a=(1 2 3 4 5)
for num in ${a[*]}
do 
  echo $num
done

[root@server2 ~]# chmod +x num.sh
[root@server2 ~]# ./num.sh

数组切片示例

[root@server2 ~]# vim num.sh

#!/bin/bash
# 数组循环
a=(1 2 3 4 5)
for num in ${a[*]:0:4}
do
  echo $num
done

[root@server2 ~]# ./num.sh 

数组切换示例

[root@server2 ~]# b=(1 2 3 4 5 )
[root@server2 ~]# echo ${b[@]/3/33}   (在输出时替换,本质未变)
1 2 33 4 5
[root@server2 ~]# echo ${b[@]}
1 2 3 4 5
[root@server2 ~]# b=${b[@]/3/33}      (改变本源)
[root@server2 ~]# echo $b
1 2 33 4 5

Shell脚本调试

sh [选项] 脚本名
常用选项
-n:不会执行该脚本,仅查询脚本语法是否有问题,如果没有语法问题就不显示任何内容,如果有问题会提醒报错。

-v:在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误,也会给出错误提示。

-x:将执行的脚本内容输出到屏幕上,这个是对调试很有用的参数。

set命令

set -x:开启调节模式
set +x:关闭调节模式

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值