shell数组操作简明总结

 更新时间:2014年05月27日 10:01:40   作者:  
这篇文章主要介绍了shell数组操作总结,这里包括数组的声明、访问、复制、计算、删除、替换等操作,需要的朋友可以参考下


数组作为一种特殊的数据结构在任何一种编程语言中都有它的一席之地,当然bash shell也不例外。本文就shell数组来做一个小的总结。

在这里只讨论一维数组的情况,关于多维数组(事实上,你得用一维数组的方法来模拟),不涉及。这里包括数组的复制,计算,删除,替换。

1.数组的声明:

复制代码 代码如下:
1)array[key]=value # array[0]=one,array[1]=two
2)declare -a array # array被当作数组名
3)array=( value1 value2 value3 ... )
4)array=( [1]=one [2]=two [3]=three ... )
5)array="one two three" # echo ${array[0|@|*]},把array变量当作数组来处理,但数组元素只有字符串本身

2.数组的访问:
复制代码 代码如下:
1)${array[key]} # ${array[1]}

3.数组的删除
复制代码 代码如下:
1)unset array[1] # 删除数组中第一个元素
2)unset array # 删除整个数组

4.计算数组的长度:
复制代码 代码如下:
1)${#array}
2)${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别

5.数组的提取
从尾部开始提取:
复制代码 代码如下:
array=( [0]=one [1]=two [2]=three [3]=four )
${array[@]:1} # two three four,除掉第一个元素后所有元素,那么${array[@]:0}表示所有元素
${array[@]:0:2} # one two
${array[@]:1:2} # two three

6.子串删除
复制代码 代码如下:
[root@localhost dev]# echo ${array[@]:0}
one two three four

[root@localhost dev]# echo ${array[@]#t*e} # 左边开始最短的匹配:"t*e",这将匹配到"thre"
one two e four

[root@localhost dev]# echo ${array[@]##t*e} # 左边开始最长的匹配,这将匹配到"three"

[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )

[root@localhost dev]# echo ${array[@] %o} # 从字符串的结尾开始最短的匹配
one tw three four

[root@localhost dev]# echo ${array[@] %%o} # 从字符串的结尾开始最长的匹配
one tw three four

7.子串替换
复制代码 代码如下:
[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )[code]
第一个匹配到的,会被删除
[code][root@localhost dev]# echo ${array[@] /o/m}
mne twm three fmur

所有匹配到的,都会被删除
复制代码 代码如下:
[root@localhost dev]# echo ${array[@] //o/m}
mne twm three fmur

没有指定替换子串,则删除匹配到的子符
复制代码 代码如下:
[root@localhost dev]# echo ${array[@] //o/}
ne tw three fur

替换字符串前端子串
复制代码 代码如下:
[root@localhost dev]# echo ${array[@] /#o/k}
kne two three four

替换字符串后端子串
复制代码 代码如下:
[root@localhost dev]# echo ${array[@] /%o/k}
one twk three four

相关文章

  • 1 秒内启动Linux的方法

    1 秒内启动Linux的方法

    这篇文章主要介绍了 1 秒内启动linux的方法,需要的朋友可以参考下
    2015-12-12
  • shell通过遍历输出两个日期范围内所有日期的方法

    shell通过遍历输出两个日期范围内所有日期的方法

    这篇文章主要介绍了在shell通过遍历输出两个日期范围内所有日期的方法,文中给出了详细的示例代码以及实现思路流程,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Linux中rpm命令用法详解

    Linux中rpm命令用法详解

    rpm命令是用于在基于RPM包管理系统的Linux发行版中安装、查询、升级和删除软件包的命令行工具,本文讲给大家详细的介绍一下Linux rpm命令的使用方法,感兴趣的同学跟着小编一起来看看吧
    2023-08-08
  • 深入了解Linux的文件权限

    深入了解Linux的文件权限

    Shell是操作系统外壳程序的统称,Windos中的图形化界面、Linux中的命令行外壳都是外壳程序。CentOS中的外壳程序被称为bash。本文主要是和大家聊聊Linux中的文件权限,感兴趣的可以了解一下
    2022-10-10
  • 一键配置CentOS iptables防火墙的Shell脚本分享

    一键配置CentOS iptables防火墙的Shell脚本分享

    这篇文章主要介绍了一键配置CentOS iptables防火墙Shell脚本分享,可保存到一个脚本文件中,在新安装的CentOS系统时一条命令搞定iptables配置,需要的朋友可以参考下
    2014-07-07
  • 一个测试下载速度的shell脚本

    一个测试下载速度的shell脚本

    这篇文章主要介绍了一个测试下载速度的shell脚本,需要的朋友可以参考下
    2014-03-03
  • Shell脚本定期清空大于1G的日志文件

    Shell脚本定期清空大于1G的日志文件

    这篇文章主要介绍了Shell脚本定期清空大于1G的日志文件,本文直接给出实现代码,需要的朋友可以参考下
    2015-05-05
  • except自动登录的几段代码分享

    except自动登录的几段代码分享

    except自动登录的几段代码,大家拿去学习吧
    2013-02-02
  • shell遍历目录处理特定目录的脚本代码

    shell遍历目录处理特定目录的脚本代码

    删除文件,目录结构为:ip/年份/月份,每个人都有一份这样的目录现需要删除2012年以前的所有文件,2012年以后的删除特定月份
    2013-02-02
  • bash if条件判断的使用

    bash if条件判断的使用

    本文主要介绍了bash if条件判断的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论