• Linux Gvim shell 特殊变量


    特殊变量:某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。

    特殊变量列表:

    1. ${0}    当前脚本的文件名

    2. ${n}    传递给脚本或函数的参数    n是一个数字,${1}表示第一个参数 

    3. ${#}    传递给脚本或函数的参数个数  

    4. ${*}     传递给脚本或函数的所有参数  与${*}的区别请往下看

    5. ${@}     传递给脚本或函数的所有参数           

    6. ${?}    上个命令的退出状态,或函数的返回值

    7. ${$}    当前shell 的进程ID  对于shell脚本,就是这些脚本所在的进程ID

    例如如下脚本

    1     #!/bin/bash
    2     echo "File Name: ${0}"
    3     echo "First Parameter : ${1}"
    4     echo "First Parameter : ${2}"
    5     echo "Quoted Values: ${@}"
    6     echo "Quoted Values: ${*}"
    7     echo "Total Number of Parameters : ${#}"

    结果如下

    $./hello Zara Ali
    File Name : ./hello
    First Parameter : Zara
    Second Parameter : Ali
    Quoted Values: Zara Ali
    Quoted Values: Zara Ali
    Total Number of Parameters : 2

    ${*} 和${@}的区别

    ${*} 和${@}都表示传递给脚本或函数的所有参数。

    不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

    被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

    下面的例子可以清楚的看到 $* 和 $@ 的区别:

     1     #!/bin/bash
     2     echo "$*=" $*
     3     echo ""$*"=" "$*"
     4     echo "$@=" $@
     5     echo ""$@"=" "$@"
     6     echo "print each param from $*"
     7     for var in $*
     8     do
     9         echo "$var"
    10     done
    11     echo "print each param from $@"
    12     for var in $@
    13     do
    14         echo "$var"
    15     done
    16     echo "print each param from "$*""
    17     for var in "$*"
    18     do
    19         echo "$var"
    20     done
    21     echo "print each param from "$@""
    22     for var in "$@"
    23     do
    24         echo "$var"
    25     done

    执行 hello "a" "b" "c" "d",结果如下:

    $*=  a b c d
    "$*"= a b c d
    $@=  a b c d
    "$@"= a b c d
    print each param from $*
    a
    b
    c
    d
    print each param from $@
    a
    b
    c
    d
    print each param from "$*"
    a b c d
    print each param from "$@"
    a
    b
    c
    d

    退出状态 --${?} :获取上一个命令的退出状态。 0-成功  1-失败

    #!/bin/bash
    
    echo "测试获取退出状态"
    echo ${?}
    

     执行 hello ,结果如下:

    “测试”
    0
    

     ${?}也可以表示函数的返回值,敬请期待!!!

     

  • 相关阅读:
    3G 4G 5G中的网络安全问题——文献汇总
    成都Uber优步司机奖励政策(4月4日)
    北京Uber优步司机奖励政策(4月4日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月4日)
    北京Uber优步司机奖励政策(4月3日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月3日)
    北京Uber优步司机奖励政策(4月2日)
    成都Uber优步司机奖励政策(4月2、3日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月2日)
    Spark入门(Python版)
  • 原文地址:https://www.cnblogs.com/blog4matto/p/5563595.html
Copyright © 2020-2023  润新知