博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 Shell 脚本里使用数组
阅读量:6325 次
发布时间:2019-06-22

本文共 798 字,大约阅读时间需要 2 分钟。

hot3.png

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]} # 

读取数组、获取数组长度

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]} # 
# 清除数组unset arrecho ${#arr[@]} # 0echo ${arr[@]} #

分片、替换

分片:

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

转载于:https://my.oschina.net/tridays/blog/819870

你可能感兴趣的文章
C++分割字符串
查看>>
字典树在车站查询功能中的应用
查看>>
图标左右摇摆
查看>>
<转>Windows平台下Makefile学习笔记(二)
查看>>
Matlab中plot、fplot、ezplot的使用方法和区别
查看>>
初探 Vue 生命周期和钩子函数
查看>>
力扣(LeetCode)21
查看>>
SpringBoot入门系列HelloWorld
查看>>
前端实现批量导出图片并打包压缩功能
查看>>
大厂高级前端面试题答案
查看>>
[Spring Security 5.2.0] 8.1.3 Authentication
查看>>
scrum 开发方式学习笔记
查看>>
利用tornado实现表格文件预览
查看>>
关于微信 setData 回调函数中的坑
查看>>
过年了,给亲朋好友解释「啥是程序员」
查看>>
社区投稿 | DBLE rule.xml 配置解析
查看>>
Web 开发学习笔记(1) --- 搭建你的第一个 Web Server
查看>>
C++回声服务器_1-简单版本
查看>>
Golang 实现凯撒密码
查看>>
IOS开发错误library not found for -lXXX
查看>>