美文网首页
在 Shell 脚本里使用数组

在 Shell 脚本里使用数组

作者: 字母数字或汉字 | 来源:发表于2017-01-06 13:04 被阅读17次

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

创建数组、写入数组元素

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

arr=(a b c)

从字符串创建数组:

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

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

arr[0]=a
arr[1]=b
arr[2]=c

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

arr[0]=a
arr[2]=c
echo ${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, c
done

清除数组、清除数组元素

arr=(a b c)
# 清除数组元素
unset arr[1]
echo ${#arr[@]} # 2
echo ${arr[@]} # a c
echo ${arr[1]} # <empty>
# 清除数组
unset arr
echo ${#arr[@]} # 0
echo ${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 c
echo ${arr[@]/c/d} # a d d

相关文章

  • 在 Shell 脚本里使用数组

    Shell 原生支持数组,虽然支持的不好。 创建数组、写入数组元素 使用 (e1 e2 ..) 语法创建数组: 从...

  • 使用shell脚本

    使用方式 shell 变量 shell 字符串操作 shell 数组 shell 注释 shell 命令行参数 s...

  • [LN_12] Shell编程-Shell数组的定义&使

    目录结构 一、Shell数组的定义&使用 Bash Shell只支持一维数组,不支持多维数组。数组中可存放多个值,...

  • Linux Shell 动态生成 数组系列 Seq 使用技巧

    Linux Shell 动态生成 数组系列 Seq 使用技巧 如果对linux shell 数组不是很熟悉的话,请...

  • shell数组使用

    目前shell支持一维数据。可使用如下方式进行定义: shell数组说明:1、数据成员不一定必须是相连的,未定义的...

  • shell数组使用

    #读配置文件初始化全局变量while read linedoif [ -z "$line" ]then conti...

  • shell中一维数组学习

    在shell中也是支持数组的,这里只介绍一维数组的简单使用;数组的赋值方式:arry=(a b c d) , 每...

  • shell array

    Shell数组变量 【拓展 1星】 普通数组:只能使用整数作为数组索引关联数组:可以使用字符串作为数组索引 一...

  • 每天学习一个shell 技能 (2)

    每天学习一个shell 技能 (2) Shell 数组 定义数组 读取数组 获取数组的长度 Shell 注释 以"...

  • Shell 数组与数学运算

    参考书籍 Linux shell 脚本攻略 数组和关联数组 数组分类普通数组:只能使用整数作为数组索引。关联数组:...

网友评论

      本文标题:在 Shell 脚本里使用数组

      本文链接:https://www.haomeiwen.com/subject/qdntbttx.html