linux中shell变量$#,$@,$0,$1,$2的含义
2015-11-01 15:07
483 查看
在进行shell编程的过程中,常常有很多美元符号($)的变量,通过网络查找,整理如下,后续再补充
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参数…。
shell中${0}和${1}这些指什么? 例如echo ${0}为-bash
位置参数
脚本运行时传入的参数(如果是在脚本主体中),或函数调用时传入的参数(如果是在函数体内)。
${0}或$0,表示脚本名称或函数名称。
${1}或$1,表示脚本或函数的第一个参数。
依此类推,一共支持0~9共10个位置参数。
示例
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参数…。
shell中${0}和${1}这些指什么? 例如echo ${0}为-bash
位置参数
脚本运行时传入的参数(如果是在脚本主体中),或函数调用时传入的参数(如果是在函数体内)。
${0}或$0,表示脚本名称或函数名称。
${1}或$1,表示脚本或函数的第一个参数。
依此类推,一共支持0~9共10个位置参数。
示例
#!/bin/bash echo "[echo test]" echo "\$\$ : $$" echo "\$! : $!" echo "\$? : $?" echo "\$* : $*" echo "\$@ : $@" echo "\$# : $#" echo "\$0 : $0" echo "\$1 : $1" echo "\$2 : $2" printf "[printf test]\n" printf "\$\$ is %s\n" "$$" printf "\$! is %s\n" "$!" printf "\$? is %s\n" "$?" printf "\$* is %s\n" "$*" printf "\$@ is %s\n" "$@" printf "\$# is %s\n" "$#" printf "\$0 is %s\n" "$0" printf "\$1 is %s\n" "$1" printf "\$2 is %s\n" "$2" exit 0
[banbanlin@localhost]$ bash shell_params.sh hello 520 [echo test] $$ : 4776 $! : $? : 0 $* : hello 520 $@ : hello 520 $# : 2 $0 : shell_params.sh $1 : hello $2 : 520 [printf test] $$ is 4776 $! is $? is 0 $* is hello 520 $@ is hello $@ is 520 $# is 2 $0 is shell_params.sh $1 is hello $2 is 520
相关文章推荐
- Linux socket 初步
- android wifi 无线调试
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户