zoukankan      html  css  js  c++  java
  • Shell自学二(参数传递和数组)

    8.传递参数
        1.使用$n来传递参数($0表示文件名)
        例子:
        echo "执行的文件名:$0";
        echo "第一个参数为:$1";
        echo "第二个参数为:$3";

         ./test.sh 1 2
        输出结果为:
        执行的文件名:test.sh
        第一个参数为:1
        第二个参数为:2
    2.特殊字符处理参数(这里面个别没有测试)
        $# : 传递到脚本的参数的个数
        $* : 以一个单字符串显示所有向脚本传递的参数("$*"以"$1 $2 ... $n")
        $$ : 脚本运行的当前进程的ID号
        $! : 后台运行的最后一个进程的ID号
        $@ : 与$*相同,但是使用的时候加引号("$@"以"$1" "$2" ... "$n")
        $- : 显示Shell使用的当前选项,与set命令功能相同
        $? : 显示最后命令的退出状态.0表示没有错误,其他任何值表名有错误
    3.例子:
        echo "Shell 传递参数实例!";
        echo "第一个参数为: $1";
        echo "参数的个数为: $#";
        echo "传递的参数作为一个字符串显示: $*";

        ./test.sh 1 2 3
        输出结果为:
        shell 传递参数实例!
        第一个参数: 1
        参数个个数为: 3
        传递的参数作为一个字符串显示: 1 2 3
    4.$*与$@区别:
        相同点:都是引用所有参数
        不同点:只有在双引号中体现出来.假设在脚本运行时写了三个参数1 2 3 ,则"*"等价与"1 2 3",而"#"等价于"1" "2" "3"
    5.实例:
        for i in "$*"; do
           echo $i
        done

        for i in "$@"; do
           echo $i
        done

        ./test.sh 1 2 3
         执行结果:
         1 2 3
        1
        2
        3
        可以看出@使用for是自带换行

    9.数组(Bash Shell只支持一维数组,数组元素的下标由0开始,Shell数组用括号表示,元素用空格分开)
         1.语法格式:
            array_name=(value1 ... valuen)
            例:my-array=(A B "C" D)
    2.定义数组
           array_name[0]=value0
           array_name[1]=value1
          array_name[2]=value2
    3.读取数组
          ${array_name[index]}
    4.获取数组中的全部元素
         ${array_name[*]}
         ${array_name[@]}
    5.获取数组的长度
        ${#array_name[*]}
        ${#array_name[@]}

    做的实例1:

    #!/bin/bash

    #使用$*输出
    echo "使用星号输出:"
    for i in "$*"; do
    echo $i
    done

    #使用$@输出
    echo "使用第二种方法进行输出:"
    for j in "$@"; do
    echo $j
    done

    做的实例2:

    #!/bin/bash
    #Shell参数传递
    echo "----测试参数传递的例子:-----";
    echo "执行的文件名为 : $0";
    echo "第一个参数为 : $1";
    echo "第二个参数为 : $2";

    #特殊字符处理参数,$*与$@的不同
    echo "----测试特殊字符处理参数:----";
    echo "参数的个数为 : $#";
    echo "字符串的形式显示 : $*";
    echo "字符串的形式显示2 : $@";

    #数组的内容
    echo "----测试数组的基本使用----"
    my_arr=(A B "C" D);
    my_arr2[0]=$1;
    my_arr2[1]=$2;
    my_arr2[2]=$3;
    echo "读取数组:${my_arr[3]}";
    echo "数组中的全部元素:${my_arr[*]}";
    echo "数组中的全部元素2:${my_arr[@]}";
    echo "数组my_arr的数组长度为:${#my_arr[*]}";
    echo "数组my_arr2的数组长度为:${#my_arr2[@]}";
    echo "数组my_arr2的全部元素为:${my_arr2[*]}";

  • 相关阅读:
    正则表达式
    scrollTop
    css3
    错误整理
    jquery-2
    vscode_修改字体,使用Fira Code
    实例_一个循环嵌套函数
    js_getComputed方法和style属性关于读取样式的区别
    html_html5增强的文件上传域_使用FileReader读取文件内容
    html_html5增强的文件上传域_FileList对象与File对象
  • 原文地址:https://www.cnblogs.com/wadmwz/p/8823221.html
Copyright © 2011-2022 走看看