linux中shell变量$#,$@,$0,$1,$2的含义解释
摘抄自:ABS_GUIDE
下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf
| 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 QQThe complete list is 24249The complete list isThe complete list is 0The complete list is 123456 QQThe complete list is 123456The complete list is QQThe complete list is 2The complete list is params.shThe complete list is 123456The complete list is QQ |
Have a nice day!!!
set关键字使用:
# ! /bin/bash # -e: 错误敏感; -u: 使用未定义的变量,抛出异常
# -x: 显示执行的命令 set -eu echo ${PARAM} ./test.sh ./test.sh: line 5: PARAM: unbound variable echo $? 1
参考资料:
shell 脚本中$$,$#,$?分别代表什么意思?:http://zhidao.baidu.com/link?url=0KXS2kbSzOsL6egl-ng68W8x5oHNwcqEcP13o1gM-M-dB9Ak6dyESfbIm2B67Q7clsbU7Ypcz3mKyLDzrAwOqK
linux中shell变量$#,$@,$0,$1,$2的含义解释:http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html
shell set的几个常见的用法:http://blog.chinaunix.net/uid-26335251-id-3330944.html
set -x与set +x指令:http://www.2cto.com/os/201304/205118.html