zoukankan      html  css  js  c++  java
  • shell脚本之十三:Shell数组应用实践

    十三、Shell数组应用实践

    (一)数组介绍

    为什么会产生数组

    通常在开发Shell脚本时,我们定义变量采用的形式为a=1;b=2;c=3,可如果有多个变量呢?这时再一个一个定义很费劲,并且要是有多个不确定的变量内容,也难以进行变量定义,此外,快速读取不同变量的值也是一件很痛苦的事情,于是数组就诞生了,它就是为了解决上述问题而来的。

    什么是Shell数组

    如果读者有过其他语言的编程经历,那么想必会熟悉数组的概念。简单地说,Shell的数组就是把有限个元素(变量或字符内容)用一个名字命名,然后用编号对它们进行区分的元素集合。这个名字就称为数组名,用于区分不同内容的编号就称为数组下标。组成数组的各个元素(变量)称为数组的元素,有时也称为下标变量。

    有了Shell数组后,就可以用相同名字引用一系列变量及变量值,并通过数字(索引)来识别使用它们。在许多场合,使用数组可以缩短和简化程序开发。

    (二)数组的定义

    方法1:推荐
    array=(one two three four)
    方法2:
    array=([0]=one [1]=two [2]=three [3]=four)
    方法3:
    [root@web01 ~]# array[0]=one
    [root@web01 ~]# array[1]=two
    [root@web01 ~]# array[2]=three
    [root@web01 ~]# array[3]=four
    [root@web01 ~]# echo ${array[@]}
    one two three four
    方法4:命令的结果放到数组里,推荐。
    array=(`ls /server/scripts`)
    

    (三)、操作数组元素

    读取数组内容:*****
    [root@web01 ~]# array=( 1 2 3 4 5)
    [root@web01 ~]# echo ${array[0]}
    1
    [root@web01 ~]# echo ${array[1]}
    2
    [root@web01 ~]# echo ${array[2]}
    3
    [root@web01 ~]# echo ${array[3]}
    4
    [root@web01 ~]# echo ${array[4]}
    5
    [root@web01 ~]# echo ${array[5]}
    
    [root@web01 ~]# echo ${array[*]}
    1 2 3 4 5
    [root@web01 ~]# echo ${array[@]}
    1 2 3 4 5
    [root@web01 ~]# echo ${#array[@]}
    5
    [root@web01 ~]# echo ${#array[*]}
    5
    给数组增加内容:
    [root@web01 ~]# array[5]=oldboy
    [root@web01 ~]# echo ${#array[*]}
    6
    [root@web01 ~]# echo ${array[*]}
    1 2 3 4 5 oldboy
    
    删除数组元素:
    [root@web01 ~]# unset array[1]
    [root@web01 ~]# echo ${array[*]}
    1 3 4 oldboy
    [root@web01 ~]# unset array[0]
    [root@web01 ~]# echo ${array[*]}
    3 4 oldboy
    数组能不能替换:
    使用for循环打印数组元素
    array=(1 2 3 4 5)
    for n in ${array[*]}
    do
        echo $n
    done
    echo =====================
    #i为数组下标
    for ((i=0;i<${#array[*]};i++))
    do
        echo ${array[i]}
    done 
    array=([1]=one [2]=two [3]=three) 
    array[0]=a;array[1]=b;array[2]=c
    array=($(命令))
    或
    array=(`命令`)
    
    
  • 相关阅读:
    int、bigint、smallint 和 tinyint
    SQL Server 2005中修改 Server Collation的方法
    BCP 数据导入问题 Unix系统中的文本文件换行符引发的问题
    如何在不提升用户权限的情况下,使普通用户执行xp_cmdshell存储过程
    【转】分析SQL Server计划缓存
    很多年过去了
    SQL日志收缩
    【转】sql server 测试中一些常看的指标和清除缓存的方法
    反射相关
    js获取UserControl内容,避免拼html的麻烦
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/12804998.html
Copyright © 2011-2022 走看看