特殊的shell变量:
$0 获取当前执行的shell脚本的文件名
$n 获取当前执行的shell脚本的第n个参数值,n=1..9
$* 获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别
$# 获取当前shell命令行中参数的总个数
$$ 获取当前shell的进程号(PID)
$! 执行上一个指令的PID
$? 获取执行的上一个指令的返回值(0 为成功, 非零为失败)
$@ 这个程序的所有参数 “$1″ “$2″ “$3″ “…”
举例(通过脚本举例,大家也可以一行行执行测试):
[ryan@etiantian test]# cat etiantian.sh
echo ‘$0 获取当前执行的shell脚本的文件名:’$0
echo ‘$n 获取当前执行的shell脚本的第n个参数值,n=1..9:’ ‘$1′=$1 ‘$2′=$2 “\$3=$3″
echo ‘$* 获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别:’$*
echo ‘$# 获取当前shell命令行中参数的总个数:’$#
echo ‘$$ 获取当前shell的进程号(PID):’$$
sleep 2 &
echo ‘$! 执行上一个指令的PID :’$!
echo ‘$? 获取执行的上一个指令的返回值:’$?
echo ‘$@ 这个程序的所有参数 “$1″ “$2″ “$3″ “…”:’$@
脚本执行结果(大家仔细看):
[ryan@etiantian test]# sh etiantian.sh 参数1 参数2 参数3
$0 获取当前执行的shell脚本的文件名: etiantian.sh
$n 获取当前执行的shell脚本的第n个参数值,n=1..9: $1=参数1 $2=参数2 $3=参数3
$* 获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别: 参数1 参数2 参数3
$# 获取当前shell命令行中参数的总个数: 3
$$ 获取当前shell的进程号(PID): 2062
$! 执行上一个指令的PID : 2063
$? 获取执行的上一个指令的返回值: 0
$@ 这个程序的所有参数 “$1″ “$2″ “$3″ “…”: 参数1 参数2 参数3
[root@hess test]# sh etiantian.sh ryan jeacen david
$0 获取当前执行的shell脚本的文件名: etiantian.sh
$n 获取当前执行的shell脚本的第n个参数值,n=1..9: $1=ryan $2=jeacen $3=david
$* 获取当前shell的所有参数 “$1 $2 $3 …注意与$#的区别: ryan jeacen david
$# 获取当前shell命令行中参数的总个数: 3
$$ 获取当前shell的进程号(PID): 2160
$! 执行上一个指令的PID : 2161
$? 获取执行的上一个指令的返回值: 0
$@ 这个程序的所有参数 “$1″ “$2″ “$3″ “…”: ryan jeacen david