脚本参数 $* $@ $N shift
执行一个脚本时可以传递参数, 事实上每个参数都有对应的变量$0~$9
./start.sh a b c
$0 $1 $2 $3
当参数超过9时, 使用 "shift N" 来移动除$0之外的参数, 前N个参数就像消失了一样, 不能再被引用了
shift 1
./start.sh a b c
$0 _ $1 $2
$@和$*可以快速地向下传递参数
"$@"最为常用, 不改变参数结构
"$*"则将整个参数作为一整个参数向下传递
不用""包裹的话, $@和$*都会将原先的空格稀释掉, 这可能会相当麻烦, 请务必使用"$@"和"$*"
"$@"和"$*"的区别
"$*"至少会传递一个参数,即使为空串。
参数数量 $#
有时需要知道参数数量, 使用 "$#" 即可. 不包含$0在内.
Shell进程PID $$
kill -9 $$ 可以杀死当前正在执行这条语句的Shell进程
变量作为变量名, 以下是遍历脚本参数的算法
argc="$#"
i=0
while (($i<$argc)); do
let j=i+1
echo $(eval echo "$""$j")
let i++
done
shell 脚本关闭通配符
set -f //关闭通配符
echo *
set +f //显示通配符