`

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数组的创建、读取、赋值以及一些特殊的使用技巧。 1. **数组定义**: 在Shell中,数组的定义非常直观。例如,创建一个包含1到5的数组可以这样写: ``` a=(1 2 3 4 5) ``` 这里的...

      linux shell数组深入学习理解

      Linux Shell数组是Linux系统中处理一组相关数据的重要工具,它允许你存储多个值在一个单一的变量名下。本文将深入探讨Linux Shell数组的使用方法,包括声明、赋值、访问和遍历数组,以及如何在实际场景中应用数组,...

      Linux shell数组建立和使用技巧

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

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

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

      Linux Shell 数组建立及使用技巧

      以下是对Linux Shell数组建立及使用技巧的详细说明: 1. **数组定义**: 在Shell中,数组的定义简单直观。例如,我们可以这样创建一个包含1到5的数组: ``` a=(1 2 3 4 5) ``` 这里,一对括号定义了一个数组`a...

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

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

      Linux shell命令 学习总结

      Linux shell 命令学习总结 本文将对 Linux shell 命令进行总结,涵盖基本的 bash 命令、环境变量和 vim 编辑器常用命令。 一、基本的 bash 命令 1. 目录管理命令: - cd destination:更改目录命令 - ls:能够...

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

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

      Linux shell数组建立及使用技巧

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

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

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

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

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

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

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

      LinuxShell自动化运维-课后习题答案.docx

      2. Shell 数组:Shell 数组是一种数据结构,可以存储多个值。例如 `arr=(1 2 3 4 5)`。 3. Shell 正则表达式:Shell 提供了正则表达式,可以用来匹配字符串。例如 `echo "Hello World!" | grep -o "Hello"`。 四、...

    Global site tag (gtag.js) - Google Analytics