在shell中有很多变量是shell自动为其赋值的,比如$?表示的是上一次命令的执行状态,返回0或者1,现在总结一下其他的:
#! /bin/sh
echo $0
echo $1
echo $2
echo $#
echo $@
echo $*
echo $?
echo $$
其中,$0, $1, $2是获取的命令行参数,比如当我们在命令行中执行shell脚本时: ./args.sh args1, args2, args3
那么,$0就是args.sh, $1就是后面第一个参数args1,以此类推
$#就是命令行参数的个数,在这里就是3
$@就是命令行后面所有的参数,可以放到for循环的in后面,在这里就是 args1 args2 args3
$*同$@
$$ 表示的是当前进程号