在linux下配置shell参数说明linux
前面已经讲到,变量名只能包含数字、字母和下划线,由于某些包含其余字符的变量有特殊含义,这样的变量被称为特殊变量。
例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:shell
- $echo $$
运行结果bash
29949
变量
含义函数
$0
当前脚本的文件名命令行
$n
传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。进程
$#
传递给脚本或函数的参数个数。test
$*
传递给脚本或函数的全部参数。变量
$@
传递给脚本或函数的全部参数。被双引号(" ")包含时,与 $* 稍有不一样,下面将会讲到。配置
$?
上个命令的退出状态,或函数的返回值。脚本
$$
当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
- #!/bin/bash
- echo "File Name: $0"
- echo "First Parameter : $1"
- echo "First Parameter : $2"
- echo "Quoted Values: $@"
- echo "Quoted Values: $*"
- echo "Total Number of Parameters : $#"
运行结果:
$./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara Ali Quoted Values: Zara Ali Total Number of Parameters : 2
- #!/bin/bash
- echo "\$*=" $*
- echo "\"\$*\"=" "$*"
- echo "\$@=" $@
- echo "\"\$@\"=" "$@"
- echo "print each param from \$*"
- for var in $*
- do
- echo "$var"
- done
- echo "print each param from \$@"
- for var in $@
- do
- echo "$var"
- done
- echo "print each param from \"\$*\""
- for var in "$*"
- do
- echo "$var"
- done
- echo "print each param from \"\$@\""
- for var in "$@"
- do
- echo "$var"
- done
执行 ./test.sh "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
$./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara Ali Quoted Values: Zara Ali Total Number of Parameters : 2 $echo $? 0 $$? 也能够表示函数的返回值,后续将会讲解