`
zhengdl126
  • 浏览: 2511473 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

shell之数组

 
阅读更多

====================== 循环

 

corp_other_table=(table1 table2)

for table in ${corp_other_table[*]}
do
    table:${table}
done

 

 

 

 

------------------------数组

 

 

 

array_var=(1 2 3 4)

 

array_var[0]="test1"

array_var[1]="test2"

 

echo ${array_var[$index]}

 

 

echo ${array_var[*]}

清单形式输出1 2 3 4

 

数组长度

${#array_var[*]}

 

 

 

----------关联数组:用任意的文本作为数组索引

 

declare -A ass_array

ass_array=([index1]=val1 [index2]=val2)

ass_array[index1]=val1

 

echo "${ass_array[index1]}"

 

 

获取数组的索引列表

echo ${!array_var[*]}

echo ${!array_var[@]}

 

 

 

 

=======================

 

数组作为一种特殊的数据结构在任何一种编程语言中都有它的一席之地,当然bash shell也不例外。本文就shell数组来做一个小的总结。
在这里只讨论一维数组的情况,关于多维数组(事实上,你得用一维数组的方法来模拟),不涉及。这里包括数组的复制,计算,删除,替换。

数组的声明:

    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变量当作数组来处理,但数组元素只有字符串本身


数组的访问:

    1)${array[key]} # ${array[1]}


数组的删除

    1)unset array[1] # 删除数组中第一个元素



    2)unset array # 删除整个数组


计算数组的长度:

    1)${#array}



    2)${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的区别


数组的提取
从尾部开始提取:
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

子串删除

    [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


子串替换

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


第一个匹配到的,会被删除

    [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

 

 

 

 

 

分享到:
评论

相关推荐

    Linux shell数组循环的实例详解

    shell数组循环 测试shell数组,循环的例子: arr=(a b c) echo 所有的内容如下:${arr[@]} echo 数组的长度:${#arr[*]} for var in ${arr[@]} do echo 打印的内容:$var done 输出的内容如下: 以上...

    Shell脚本数组用法小结

    主要介绍了Shell脚本数组用法小结,本文讲解了数组声明、数组遍历、获取数组长度、删除数组元素、数组切片等内容,需要的朋友可以参考下

    ksh 基础知识 shell简介 变量数组 控制结构 函数 调试

    目录: 一、 Shell简介 二、 Shell变量 三、 Shell数组 四、 Shell控制结构 五、 Shell函数 六、 Shell调试

    linux shell 中数组的定义和for循环遍历的方法

    平时写shell脚本也经常遍历数组,但是一下没答上来,被鄙视了。 所以平时学习还是好好总结吧,不能每次都问度娘谷爷。IT 知识体系较为庞大,细节的东西也太多,平时遇到问题应该的多总结记笔记。 linux 中定义一个...

    linux_shell_数组建立及使用技巧.docx

    讲解了linux/unix下shell中对数组的操作

    linux shell实现求一个多维数组中的最大和最小值

    主要介绍了linux shell实现求一个多维数组中的最大和最小值,需要的朋友可以参考下

    Shell动态生成数组的多种方法

    主要介绍了Shell动态生成数组的多种方法,本文给出while循环法和for循环法,以及使用seq生成数组法,需要的朋友可以参考下

    Shell脚本数组操作小结

    主要介绍了Shell脚本数组操作小结,包含数组定义、读取、替换、删除、复制、计算等,需要的朋友可以参考下

    shell 使用数组作为函数参数的方法(详解)

    下面小编就为大家带来一篇shell 使用数组作为函数参数的方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Linux在shell中自动生成1到100的数组方法(两种方法)

    之前自己在写shell脚本的时候,需要自动创建1-100的文本确不知道该如何去创建。百度一翻终于知道了创建的方法。 在shell脚本中创建1-100的方法很多,那我在这里主要就说两种容易理解且方便的方法:  第一种方法: ...

    Shell 数组与关联数组详解及实例代码

    主要介绍了 Shell 数组与关联数组详解及实例代码的相关资料,需要的朋友可以参考下

    通过实例深入理解linux shell数组

    本文为大家介绍linxu shell中数组的相关知识,并举了很多例子供参考,包括数组的复制,计算,删除,替换等,是学习shell 数组的不可多得的好文章。 数组的声明: 1)array[key]=value # array[0]=one,array[1]=two2)...

    Shell编程高级进阶系列视频.zip

    13Linux下Shell编程之While case演练 14Linux下Shell编程之While case演练 15Shell编程之函数及脚本案例讲解 16Shell编程之函数及脚本案例讲解 17Linux下Shell编程FIND、SED命令实战 18Linux下Shell编程FIND、SED...

    Shell 数组

    Shell 数组 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。 与大部分编程语言类似,数组元素的下标由0开始。 Shell 数组用括号来表示,元素用”...

    Linux shell数组与关联数组的用法实例

    今天小编就为大家分享一篇关于Linux shell数组与关联数组的用法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    浅谈shell数组的定义及循环

    shell中数组的定义及遍历,先直接看示例: #!/bin/sh #定义方法一 数组定义为空格分割 arrayWen=(a b c d e f) #定义方法二 arrayXue[0]=m arrayXue[1]=n arrayXue[2]=o arrayXue[3]=p arrayXue[4]=q arrayXue[5]=r...

    shell数组常用实例分享

    说明:shell中数组的下标默认是从0开始的 1、将字符串放在数组中,获取其长度 代码如下:#!/bin/bashstr=”a b –n d”array=($str)length=${#array[@]}echo $length for ((i=0; i<$length; i++))doecho ${array...

Global site tag (gtag.js) - Google Analytics