shell数组操作

本文详细介绍了如何在Shell中连接数组、添加元素、切片操作、字符串转数组、读取输入并处理数组元素。通过实例演示了关键技巧,包括数组拼接、插入值、索引切片和字符串分割,是Shell初学者和进阶者的实用参考。
摘要由CSDN通过智能技术生成

一 连接多个数组为一个数组

用()将多个数组连接在一起,()中各个数组用空格隔开

("$[第一个数组名@]" "$[第二个数组名@]" "$[第三个数组名@]")

在这里插入图片描述

二 向数组中添加元素

("${原数组名[@]}" 新值1 新值2)
root@linx:~# l4=("${l4[@]}" "wo ni" ta)

三 从数组中切片出字符串

root@linx:~# l1=("a a" b c d e f)
root@linx:~# str1=${l1[@]}   # 全部
root@linx:~# str2=${l1[@]:1:2}   # 从索引1开始取两位
root@linx:~# str3=${l1[@]::2}   # 从索引0开始取两位
root@linx:~# 
root@linx:~# 
root@linx:~# echo $str1
a a b c d e f
root@linx:~# echo $str2
b c
root@linx:~# echo $str3
a a b

四 从数组中切片出数组

切片开始的索引号:取几个

root@linx:~# l=("a a" b c d e f)
root@linx:~# l1=("${l1[@]}")   # 全部
root@linx:~# l2=("${l1[@]:1:2}")   # 从索引1开始取两位
root@linx:~# l3=("${l1[@]::2}")   # 从索引0开始取两位
root@linx:~# l4=("${l1[@]:2}")   # 从索引2开始取取到最后

五 将字符串转换成数组(以字符串中的空格来区分数组中的元素)

数组=($字符串变量名)

[root@DTOS ~]# str1="a b c"
[root@DTOS ~]# l1=($str1)
[root@DTOS ~]# for i in "${l1[@]}" ; do echo ==$i==; done
==a==
==b==
==c==

六 用read -a参数,从标准输入中读取数组

[root@DTOS ~]# read -a l1
a b
[root@DTOS ~]# for i in "${l1[@]}" ; do echo ==$i==; done
==a==
==b==

七 将数组中每个元素中的都去掉某个子字符串,然后转换成一个字符串

[root@DTOS ~]# names=(andy andy1 linda andy2)
[root@DTOS ~]# t=${names[@]/an/}
[root@DTOS ~]# for i in "${t[@]}" ; do echo ==$i==; done
==dy dy1 linda dy2==
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值