$# // 表示传递给脚本的参数个数
$* // 以单个字符串的形式返回所有传递给脚本的参数
$@ // 以单个字符串的形式返回所有传递给脚本的参数,但每个参数都是独立的
$? // 表示上一个命令的退出状态。当命令成功执行时,$?的值通常为0;当命令执行失败时,$?的值通常为非零值,表示出错的原因
shift // 命令用于将参数列表向左移动,使得$2变为$1,$3变为$2,依此类推,同时$#也会减少
${1#*=} // 从传递给脚本或函数的第一个参数中提取等号 (=) 后面的值
# Example
while [ $# -gt 0 ]; do
case "$1" in
--pattern=*)
pattern="${1#*=}"
;;
*)
printf "***************************\n"
printf "* Error: Invalid argument.*\n"
printf "***************************\n"
exit 1
esac
shift
done