进程状态变量
1、$$获取当前shell的进程号(PID)
2、$!执行上一个指令的PID
3、$?获取执行上一个命令的返回值(0为成功,非零为失败,这个很常用)
4、$_在此之前执行的命令或脚本的最后一个参数
cat > test$.sh echo '$$='$$ echo '$!='$! echo '$?='$? echo '$@='$@ echo '$_='$_ #输出如下 sh test\$.sh 1 2 3 $$=2556 $!= $?=0 $@=1 2 3
$*和$@的区别
$*将所有的参数视为单个字符串,相当于“$1$2$3”
$@将每个参数视为单个的字符串,保留命令行中的任何空白字符
set -- 'I am' jane lee for i in $*; do echo $i; done; I am jane lee for i in $@; do echo $i; done; I am jane lee for i in "$@"; do echo $i; done; I am jane lee for i in "$*"; do echo $i; done; I am jane lee