zoukankan      html  css  js  c++  java
  • 【转】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

  • 相关阅读:
    postgresql字符串函数
    ruby中的设计模式--策略模式
    (转)MySQL 性能优化的最佳20多条经验分享
    (转)ruby中的设计模式--模板方法
    观察者模式的应用
    postgresql的ARRAY_TO_STRING
    ruby和javascript的观察者模式
    mysql表连接的时候注意事项
    checkbox记忆功能的实现
    order by的注意事项
  • 原文地址:https://www.cnblogs.com/wi100sh/p/4228959.html
Copyright © 2011-2022 走看看