`

Linux shell 数组

 
阅读更多



参考资料

*《学习bash shell 第3版》6.4. Arrays

Bash中还可以使用数组变量,其赋值有两种:
(1) name = (value1 ... valuen) 此时下标从0开始,也可以:names=([2]=alice [0]=hatter [1]=duchess)。
(2) name[index] = value

<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

数组可以使用declare –a来显示声明,数组下标的范围没有任何限制,同时也不必使用连续的分量。可以通过${array[i]}.访问数组中的元素。如果不指定元素,则表示第一个元素。@ 与*相同,但是使用时加引号,并在引号中返回每个参数,*则作为一个整体的字符串返回。



# A=(a b c def)

# echo ${A[@]}

a b c def

# echo ${A}  

a

echo ${A
  • }

  • a b c def

    for i in "${A[@]}"; do

        echo $i

    done

    显示的结果:

    a

    b

    c

    def



    for i in "${A
  • }"; do

  •     echo $i

    done

    显示结果:

    a b c def



    显示目前有值的数组序号:――bash 3.0以后才支持。

    # echo ${!A[@]}

    0 1 2 3

    //取得数组元素的个数

    # echo ${#A[@]}

    4

    显示第3个元素里面的元素的个数:

    echo ${#A[3]}

    3

    echo ${#A[2]}

    1



    //清除变量
    $ unset A
    $ echo ${A[@]}
    $

    A=B
    B=C
    unset $A 事实上所取消的变量是 B 而不是 A



    //清空变量,即将值变为空
    $ A=
    $ echo ${A[@]}
    $





    #!/bin/bash

        for i in $(cut -f 1,3 -d: /etc/passwd) ; do

            echo $i

            array[${i#*:}]=${i%:*}

        done

    echo "User ID $1 is ${array[$1]}."

    echo "There are currently ${#array[@]} user accounts on the system."







    用shell实现的选择排序

    # vi test2

    #!/bin/bash



        values=(39 5 36 12 9 3 2 30 4 18 22 1 28 25)

        numvalues=${#values[@]}

        for (( i=0; i < numvalues; i++ )); do

            lowest=$i

            for (( j=i+1; j < numvalues; j++ )); do

                if [ ${values[j]} -le ${values[$lowest]} ]; then

                    lowest=$j

                fi

            done

            temp=${values[i]}

            values[i]=${values[lowest]}

            values[lowest]=$temp

        done

        for (( i=0; i < numvalues; i++ )); do

            echo -ne "${values[$i]}\t"

        done

    echo -e "\n\n-------end---------\n"



           环境变量DIRSTACK就是使用数组实现的。其他还有BASH_VERSINFO,    PIPESTATUS
    分享到:
    评论

    相关推荐

      Linux shell数组循环的实例详解

      以上就是Linux shell数组循环的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 您可能感兴趣的文章:Shell获取字符串长度的多种方法总结用Shell判断字符串...

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

      主要介绍了Linux Shell 数组的创建及使用技巧,本文讲解了数组定义、数组读取与赋值以及特殊使用,需要的朋友可以参考下

      linux shell数组深入学习理解

      本文为大家介绍linux shell数组的相关知识,并提供了充足的例子供参考,这么好的东东,千万不要错过

      Linux shell数组建立和使用技巧

      linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。  1.数组定义  [chengmo@centos5 ~]$ a=(1 ...

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

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

      Linux Shell 数组建立及使用技巧

      shell命令在linux系统中是一个非常重要的功能了,我们可以通过它来做N多的事情,本文给大家介绍linux shell 数组建立及使用技巧,需要的朋友可以参考下

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

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

      Linux shell命令 学习总结

      Linux 下关于shell命令的基本介绍 gwak iconv函数 sz和rz命令 数组的基本操作 ls命令

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

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

      Linux shell数组建立及使用技巧

      linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在数组方面一些操作进行的总结。  1.数组定义  [chengmo@centos5 ~]$ a=(1 ...

      Linux shell同时发送邮件给多个人.txt

      Linux shell发邮件如何才能同时发送邮件给多个人???这里揭晓答案

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

      linux shell中的语法和普通编程语言 c/c++ java 的不太一样,平时用的不多,所以总是记不住,写脚本才会去查怎么用。 今天突然被问到数组怎么去遍历。平时写shell脚本也经常遍历数组,但是一下没答上来,被鄙视了。 ...

      Linux Shell编程基础

      Linux Shell编程基础 1.调用shell 2.注释 3.执行shell脚本 4.接收用户输入并赋值给变量 5.Bash中的变量 1. 环境变量 1.1HOME ...6.Shell数组 1.定义数组 2.引用数组 7.举例 1.猜数字脚本 2.随机数排序

      Shell 数组

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

    Global site tag (gtag.js) - Google Analytics