`
zhengdl126
  • 浏览: 2540086 次
  • 性别: 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 输出的内容如下: 以上...

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

    数组的特殊使用技巧之一是分片(切片)。通过`${数组名[@]:起始位置:长度}`可以截取数组的一部分。例如: ```bash echo ${a[@]:1:3} # 输出2 3 4 ``` 这将从下标1开始,取三个元素。如果将结果赋值给新数组,如`c=($...

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

    ### Linux Shell 实现多维数组的最大值与最小值 在 Linux 环境下,处理文本数据是一项常见的任务。Shell 脚本提供了一种强大的工具来操作文件内容,包括数组和其他复杂的数据结构。本文将详细介绍如何使用 Linux ...

    Shell脚本数组用法小结

    Shell脚本中的数组是一种非常实用的数据结构,它允许我们存储多个相关的值,并通过单个变量名来管理和操作这些值。以下是对Shell脚本数组用法的详细解释: 1. **数组声明**: - 直接赋值:你可以逐个为数组元素...

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

    **Shell数组** Shell也支持数组变量,可以存储多个值。例如: ```bash my_array=(apple orange banana) ``` 访问数组元素: ```bash echo ${my_array[0]} # 输出 apple ``` 增加数组元素: ```bash my_array+=(...

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

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

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

    在Linux Shell编程中,动态生成数组是一项常见的任务,尤其在处理数据集合或执行循环操作时。本文主要介绍三种方法来动态创建数组,包括while循环法、for循环法以及使用seq命令生成数组法。 首先,我们来看while...

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

    在Shell脚本编程中,有时我们需要将数组作为参数传递给函数。然而,由于Shell的特殊性,直接传递数组可能会导致只传递第一个元素的情况。本文将详细介绍如何正确地使用数组作为函数参数。 首先,让我们分析问题的...

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

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

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

    在Shell脚本编程中,数组是一种非常重要的数据结构,它允许你存储一组相关的值,并且可以通过索引来访问这些值。Shell提供了两种类型的数组:普通数组和关联数组。 1. **普通数组** - **定义**:普通数组用一对圆...

    Shell脚本数组操作小结

    在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为: 代码如下:数组名=(值1 值2 … 值n) 例如: 代码如下: array_name=(value0 value1 value2 value3) 或者 代码如下: array_...

    通过实例深入理解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脚本编程中,数组是一种非常重要的数据结构,它允许我们存储一组相关的值。本篇将详细讲解Linux Shell中的两种数组类型:序列数组和关联...希望这些实例和解释能帮助你更好地理解和运用Linux Shell数组。

    Linux Shell 数组的创建及使用技巧

    本篇文章将深入探讨Linux Shell数组的创建、读取、赋值以及一些特殊的使用技巧。 1. **数组定义**: 在Shell中,数组的定义非常直观。例如,创建一个包含1到5的数组可以这样写: ``` a=(1 2 3 4 5) ``` 这里的...

    浅谈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