• 【转】linux中shell变量$#,$@,$0,$1,$2的含义解释


    原文网址:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html

    linux中shell变量$#,$@,$0,$1,$2的含义解释:
    变量说明:
    $$
    Shell本身的PID(ProcessID)
    $!
    Shell最后运行的后台Process的PID
    $?
    最后运行的命令的结束代码(返回值)
    $-
    使用Set命令设定的Flag一览
    $*
    所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $@
    所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $#
    添加到Shell的参数个数
    $0
    Shell本身的文件名
    $1~$n
    添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
    示例:

    1 #!/bin/bash
    2 #
    3 printf "The complete list is %s " "$$"
    4 printf "The complete list is %s " "$!"
    5 printf "The complete list is %s " "$?"
    6 printf "The complete list is %s " "$*"
    7 printf "The complete list is %s " "$@"
    8 printf "The complete list is %s " "$#"
    9 printf "The complete list is %s " "$0"
    10 printf "The complete list is %s " "$1"
    11 printf "The complete list is %s " "$2
    结果:

    [Aric@localhost ~]$ bash params.sh 123456 QQ
    The complete list is 24249
    The complete list is
    The complete list is 0
    The complete list is 123456 QQ
    The complete list is 123456
    The complete list is QQ
    The complete list is 2
    The complete list is params.sh
    The complete list is 123456
    The complete list is QQ
    Have a nice day!!!

    补充:

    $@与$*的区别

    (1)
    #!/bin/sh
    #test.sh
    for i in $@  #for i in $*
    do
      echo $i
    done

    测试:test.sh 1 2 3 
    结果一样,都输出:
    1
    2
    3

    (2)
    for i in "$@"  #for i in "$*"
    do
      echo $i
    done

    测试:test.sh 1 2    3

    第一个输出:
    1
    2
    3

    第二个输出:1 2 3

  • 相关阅读:
    新博客
    【Gym-100712 #H】Bridges
    【CodeForces817F】MEX Queries
    【POJ1734】Sightseeing trip
    【Aizu2968】Non-trivial Common Divisor
    【Gym-101473 #I】Patches
    【POJ2228】Naptime
    【CodeForces219D】Choosing Capital for Treeland
    【URAL1018】Binary Apple Tree
    深入探索C++对象模型(五)
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4228959.html
Copyright © 2020-2023  润新知