1.$0-$n :表示脚本或函数的参数。$0 是脚本的名称,$1 到 $n 是位置参数,每个对应一个传递给脚本或函数的参数。
2.$* :表示所有传递给脚本或函数的参数。它将所有位置参数作为单个字符串显示。
3.$@ :表示所有传递给脚本或函数的参数。与$* 不同,它将每个位置参数作为独立的字符串显示。
4.$# :表示传递给脚本或函数的参数个数。它代表了位置参数的数量。
5.$? :表示上一个命令的退出状态。如果说上一个命令成功执行,则$? 的值为0,否则为非零值。
6.$$ :表示当前Shell脚本或进程的进程ID(PID)。
可以运行下面的脚本自己感受一下(各种区别就一目了然了):
#!/bin/bash
echo "脚本名称: $0"
echo "所有参数作为单个字符串: $*"
echo "所有参数作为独立字符串: $@"
echo "参数个数: $#"
echo "上一个命令的退出状态: $?"
echo "当前进程ID: $$"
#echo "$@和$*比较"
count=0
for arg in "$@"
do
echo $arg
count=$[ $count + 1 ]
done
echo "\$@ 一共循环了 $count 次"
#
count=0
for arg in "$*"
do
echo $arg
count=$[ $count + 1 ]
done
echo "\$* 一共循环了 $count 次"