仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1105|回复: 8
打印 上一主题 下一主题

[shell编程] 带来一篇shell数组小结

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!数组作为一种特别的数据布局在任何一种编程言语中都有它的一席之地,固然bashshell也不破例。本文就shell数组来做一个小的总结。
在这里只会商一维数组的情形,关于***数组(现实上,你得用一维数组的***来摹拟),不触及。这里包含数组的复制,盘算,删除,交换。

数组的声明:
[size=1em]
[size=1em]1

[size=1em][size=1em]1)array[key]=value#array[0]=one,array[1]=two




[size=1em]
[size=1em]1

[size=1em][size=1em]2)declare-aarray#array被看成数组名




[size=1em]
[size=1em]1

[size=1em][size=1em]3)array=(value1value2value3...)




[size=1em]
[size=1em]1

[size=1em][size=1em]4)array=([1]=one[2]=two[3]=three...)




[size=1em]
[size=1em]1

[size=1em][size=1em]5)array="onetwothree"#echo${array[0|@|*]},把array变量看成数组来处置,但数组元素只要字符串自己




数组的会见:
[size=1em]
[size=1em]1

[size=1em][size=1em]1)${array[key]}#${array[1]}




数组的删除
[size=1em]
[size=1em]1

[size=1em][size=1em]1)unsetarray[1]#删除数组中第一个元素




[size=1em]
[size=1em]1

[size=1em][size=1em]2)unsetarray#删除全部数组




盘算数组的长度:
[size=1em]
[size=1em]1

[size=1em][size=1em]1)${#array}




[size=1em]
[size=1em]1

[size=1em][size=1em]2)${#array[0]}#同上。${#array
  • }、${#array[@]}。注重同#{array:0}的区分



    数组的提取
    从尾部入手下手提取:

    [size=1em]
    [size=1em]1

    [size=1em]2

    [size=1em]3

    [size=1em]4

    [size=1em][size=1em]array=([0]=one[1]=two[2]=three[3]=four)
    [size=1em]${array[@]:1}#twothreefour,撤除第一个元素后一切元素,那末${array[@]:0}暗示一切元素
    [size=1em]${array[@]:0:2}#onetwo
    [size=1em]${array[@]:1:2}#twothree



    子串删除
    [size=1em]
    [size=1em]1

    [size=1em]2

    [size=1em]3

    [size=1em]4

    [size=1em]5

    [size=1em]6

    [size=1em]7

    [size=1em]8

    [size=1em]9

    [size=1em]10

    [size=1em]11

    [size=1em]12

    [size=1em]13

    [size=1em]14

    [size=1em]15

    [size=1em][size=1em][root@localhostdev]#echo${array[@]:0}
    [size=1em]onetwothreefour
    [size=1em]
    [size=1em][root@localhostdev]#echo${array[@]#t*e}#右边入手下手最短的婚配:"t*e",这将婚配到"thre"
    [size=1em]onetwoefour
    [size=1em]
    [size=1em][root@localhostdev]#echo${array[@]##t*e}#右边入手下手最长的婚配,这将婚配到"three"
    [size=1em]
    [size=1em][root@localhostdev]#array=([0]=one[1]=two[2]=three[3]=four)
    [size=1em]
    [size=1em][root@localhostdev]#echo${array[@]%o}#从字符串的开头入手下手最短的婚配
    [size=1em]onetwthreefour
    [size=1em]
    [size=1em][root@localhostdev]#echo${array[@]%%o}#从字符串的开头入手下手最长的婚配
    [size=1em]onetwthreefour



    子串交换
    [size=1em]
    [size=1em]1

    [size=1em][size=1em][root@localhostdev]#array=([0]=one[1]=two[2]=three[3]=four)




    第一个婚配到的,会被删除
    [size=1em]
    [size=1em]1

    [size=1em]2

    [size=1em][size=1em][root@localhostdev]#echo${array[@]/o/m}

    [size=1em]mnetwmthreefmur



    一切婚配到的,城市被删除
    [size=1em]
    [size=1em]1

    [size=1em]2

    [size=1em][size=1em][root@localhostdev]#echo${array[@]//o/m}

    [size=1em]mnetwmthreefmur



    没有指定交换子串,则删除婚配到的子符
    [size=1em]
    [size=1em]1

    [size=1em]2

    [size=1em][size=1em][root@localhostdev]#echo${array[@]//o/}

    [size=1em]netwthreefur



    交换字符串前端子串
    [size=1em]
    [size=1em]1

    [size=1em]2

    [size=1em][size=1em][root@localhostdev]#echo${array[@]/#o/k}

    [size=1em]knetwothreefour



    交换字符串后端子串
    [size=1em]
    [size=1em]1

    [size=1em]2

    [size=1em][size=1em][root@localhostdev]#echo${array[@]/%o/k}

    [size=1em]onetwkthreefour



    如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
  • 小魔女 该用户已被删除
    沙发
    发表于 2015-1-16 10:48:08 来自手机 | 只看该作者

    带来一篇shell数组小结

    工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
    若相依 该用户已被删除
    板凳
    发表于 2015-1-18 18:28:03 | 只看该作者
    熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
    飘灵儿 该用户已被删除
    地板
    发表于 2015-1-27 17:47:57 | 只看该作者
    我学习Linux的心得体会 ,希望对大家的学习有所帮助,由于水平有限,本文难免有所欠缺,望请指正。
    admin 该用户已被删除
    5#
    发表于 2015-2-12 11:00:08 | 只看该作者
    永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
    老尸 该用户已被删除
    6#
    发表于 2015-3-3 03:52:20 | 只看该作者
    硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
    蒙在股里 该用户已被删除
    7#
    发表于 2015-3-11 10:01:30 | 只看该作者
    掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
    深爱那片海 该用户已被删除
    8#
    发表于 2015-3-18 12:28:50 | 只看该作者
    熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。
    再见西城 该用户已被删除
    9#
    发表于 2015-3-26 06:30:15 | 只看该作者
    永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

    GMT+8, 2024-4-29 01:49

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表