• Shell数组和函数


    数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组)。

    Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

    array_name=(value1 ... valuen)

    2.数组常用操作
    1)定义一个数组: myarray=(1 2 3 4 5);
    2)读取数组的某一个元素 :

    echo ${myarray[下标值]}    
    # 注意数组名称必须使用{} 括起来, 下标值从0开始编号;

    3)数组元素的赋值:

     myarray[下标值] = xxx  ;

    4)显示数组的所有元素

    echo ${myarray[*]}

    5)获得数组的长度(元素的个数)

     echo    ${#array[@]}  
     或者    echo ${#array[*]}

    6)删除一个数组元素

     unset myarray[下标值]

    数组的遍历:
    #!/bin/bash
    
    my_arry=(a b "c","d" abc)
    echo "-------FOR循环遍历输出数组--------"
    for i in ${my_arry[@]};
    do
      echo $i
    done

    数组使用方法举例

    1.常规方法输出数组的所有元素,并进行独立的处理
    用 ${myarray[*]} 直接输出的所有元素的个数,对数组元素进行独立操作的时候,不太方便,所以有必要。

    2.有时候不知道数组中元素的个数,因此数组的长度事先是不知道的,因此此时,需要动态的扩展数组长度与空间
     
    # 执行方法:脚本名server1 server2 server3 server...
     
    # 获得所有参数存入数组
    list=($*)
    len=${#list[@]}

    shell和函数的定义

    1.linux shell 函数
    将一组命令集或语句形成一个可用的块, 这些语句块称为函数。

    2.shell 函数的组成

    函数名:函数名字,注意一个脚本中函数名要唯一,否则会引起调用函数紊乱。
    函数体: 函数内部命令的集合,实现一个业务的功能。

    3.shell 函数定义的格式

    function  函数名()  

    # function可以省略,注意()内部不带任何参数。

    {

    命令1

    命令2

    . . .

    }

    四要素:

    1. 返回类型 (强)
    2. 函数名
    3. 参数列表
    4. 函数体

    函数使用方法举例

    1.函数定义及引用实例一: 最简单的定义及引用

    function print_welcome()  #function可以去掉,注意括号里不能有参数
    {
        echo "演练函数的定义及引用方法:"
        echo "welcome,now time is `date`"
    }
    print_welcome #函数的名字,调用

    2.函数定义及引用实例二:向函数传递参数演练
    向函数传递参数就像在一般脚本中使用特殊变量1, 2 … $ 9一样,函数取得所传参数后,最好先在函数内重新设置变量保存所传的参数。
    程序功能:向函数传递一个变量值,对该变量值进行相关的运算,并输出结果。

    function sum()
    {
        a1=$1
        a2=$2
     
            
        echo "演练函数内参数的传递的方法"
        if [ $# -eq 2] #如果参数的个数等于2
            then
                echo "符合函数要求的参数个数"
                
                let sum=a1+a2
            else
                echo "函数要求的参数个数不符,请重新输入..."
        fi
        echo "$a1+$a2=$sum"
    }
    sum 10 90 #函数名和两个参数,调用

    3.函数文件和脚本文件不在同一个文件中

     

           . ./func_3.sh      #注意格式:点 空格 函数文件地址
     
  • 相关阅读:
    SIEM思考
    PowerDesigner15在生成SQL时报错Generation aborted due to errors detected during the verification of the mod
    Mongo驱动
    RsysLog
    vi全局替换方法
    RPM
    hdu1195 Open the Lock (DFS)
    调制:调幅(AM)与调频(FM)
    调制:调幅(AM)与调频(FM)
    追本溯源 —— 诗词、名言
  • 原文地址:https://www.cnblogs.com/time-to-despair/p/9995728.html
Copyright © 2020-2023  润新知