侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

在 Shell 脚本里使用数组

2023-12-01 星期五 / 0 评论 / 0 点赞 / 70 阅读 / 1672 字

Shell 原生支持数组,虽然支持的不好。创建数组、写入数组元素使用 (e1 e2 ..) 语法创建数组:arr=(a b c)从字符串创建数组:str="a b c"arr=($str)使用下标语法

Shell 原生支持数组,虽然支持的不好。

创建数组、写入数组元素

使用 (e1 e2 ..) 语法创建数组:

arr=(a b c)

从字符串创建数组:

str="a b c"arr=($str)

使用下标语法创建数组或写入数组元素:

arr[0]=aarr[1]=barr[2]=c

如果数组下标使用的不连续,则对跳过的下标赋空值:

arr[0]=aarr[2]=cecho ${arr[1]} # <empty>

读取数组、获取数组长度

arr=(a b c)# 获取单个元素echo ${arr[0]} # a# 获取全部元素echo ${arr[@]} # a b c# 获取数组长度len=${#arr[@]} # 3

通过 for in 语法使用数组:

arr=(a b c)for item in ${arr[@]}; do    echo "$item" # a, b, cdone

清除数组、清除数组元素

arr=(a b c)# 清除数组元素unset arr[1]echo ${#arr[@]} # 2echo ${arr[@]} # a cecho ${arr[1]} # <empty># 清除数组unset arrecho ${#arr[@]} # 0echo ${arr[@]} # <empty>

分片、替换

分片:

arr=(a b c)clip=${arr[@]:1:2}echo ${#clip[@]} # 1 注意:只切片得到的不是数组subarr=(${arr[@]:1:2})echo ${#subarr[@]} # 2 

替换:

arr=(a b c)arr=(${arr[@]/b/c}) # a c cecho ${arr[@]/c/d} # a d d

广告 广告

评论区