特殊变量提醒:
$# 记录命令行参数个数
$* 保存所有参数,并当做单个单词保存
$@ 保存所有参数,当做同一个字符串中的多个独立的单词
getopts 命令格式:
getopts optstring variable
有效字母都会列在optstring中,当前参数保存在 variable中
示例:
#!/bin/bash while getopts :ab:c opt do case "$opt" in a) echo "Found the -a option";; b) echo "Found the -b option,wiht value $OPTARG";; c) echo "FOund the -c option";; *) echo "Unknown option :$opt";; esac done
测试
# sh test.sh -a -b test -c Found the -a option Found the -b option,wiht value test FOund the -c option
# sh test.sh -d Unknown option :?
选项字母要求有参数值的时候,在其后加一个冒号;
去掉错误消息的话,在optstring之前加一个冒号;
$OPTARG会保存参数值