• Shell 入门(二):数组与函数


    2.3 数组

    • 数组分类
      • 普通数组
      • 关联数组
    • 遍历数组

    2.3.1 数组分类

    # 普通数组: 只能使用整数作为数组索引
    # 关联数组: 可以使用字符串作为数组索引,必须提前声明才能使用(对应其他编程语言的“字典”或者“Map”)
    
    # 普通数组
    books=(nginx mysql shell perl lua)
    
    # 统计数组元素个数
    echo ${#books[@]}
    
    # 访问数组中的第一个元素
    echo ${books[0]}
    
    # 从数组 1 开始
    echo ${books[@]:1}
    
    # 从数组索引 1 开始,访问两个元素
    echo ${books[@]:1:2}
    
    # 访问数组中所有数据,相当于 echo ${books[*]}
    echo ${books[@]}
    
    
    # 关联数组
    declare -A student_info         # 声明为关联数组
    student_info=([name]=zhangsan [age]=18 [skill]=shell)
    
    # 获取 name 对应的 value
    echo ${student_info[name]}
    
    # 获取所有的 value
    echo ${student_info[*]}
    
    # 获取所有的 key
    echo ${!student_info[*]}
    

    2.4 函数

    2.4.1 函数的定义及返回值

    # 定义函数:第一种方式
    function hello(){
        echo "第一种函数定义的方式"
    }
    echo "-----函数开始执行-----"
    hello
    echo "-----函数执行完毕-----"
    
    # 定义函数:第二种方式
    hello2(){
        echo "第二种函数定义的方式"
    }
    hello2
    
    
    # 示例一:统计文件行数
    #!/bin/bash
    
    FILE=/etc/passwd
    
    function countLine() {
        local i=0
        while read line
        do
            let ++i
        done < $FILE
        echo "$FILE have $i lines"
    }
    
    echo "Call function countLine"
    countLine
    
    
    # 函数的返回值
    #!/bin/bash
    
    funcWithReturn() {
        echo "计算两个数字之和:"
        echo "输入第一个数字:"
        read first
        echo "输入第二个数字:"
        read second
        echo "输入的两个数字分别为 $first 和 $second"
        return $(($first+$second))
    }
    funcWithReturn
    echo "输入的两个数字之和为 $?"
    
    
    # 函数传参
    # 示例一: 计算两个数的乘积
    #!/bin/bash
    [ $# -ne 2 ] && echo "请输入两个参数" && exit 1
    
    let_num(){
        let test="$1"*"$2"
        echo "第一个值是 $1"
        echo "第二个值是 $2"
        echo "两个值的乘积为:$test"
    }
    
    let_num $1 $2
    
    
    # 自定义函数库
    
    

    参考资料:

  • 相关阅读:
    读取大文件,一次读5兆
    手机+电脑如何使用油猴插件和油猴脚本?
    perl module 安装
    docker Ubuntu 环境变量
    vue中怎么利用express启动数据服务
    Oracle 两表关联更新
    linux 中 利用awk数组求每列的和及平均值
    linux 中shell数组的应用
    linux 中如何求每列的和及平均值
    linux 中如何删除文件末尾的空行
  • 原文地址:https://www.cnblogs.com/linkworld/p/15063632.html
Copyright © 2020-2023  润新知