预定义变量即Shell已经定义的变量,用户可根据Shell的定义直接使用这些变量,无需自己定义。所有预定义的变量都由$符和其他符号组成,常用的预定义变量如下所示。
(1)$#:表示命令行参数的个数。
(2)$@:包含所有的命令行参数,即“$1、$2、$3......”。
(3)$?:前一个命令的退出状态,正常退出返回0,反之为非0值。
(4)$*:包含所有的命令行参数,即“$1、$2、$3......”。
(5)$$:正在执行的进程的ID号。
预定义变量的使用如例所示。
1 #! /bin/sh
2
3 echo "$0"
4 echo "$#"
5 echo "$*"
输出结果如下所示,在命令行输入参数。
linux@ubuntu:~/1000phone$ ./test.sh 1 2 3 4 5
./test.sh
5
1 2 3 4 5
linux@ubuntu:~/1000phone$
由输出结果可知,$0为“./test.sh”,$#为命令参数的个数,共有5个参数,$*表示命令行所有的参数。