我遇到了bash脚本上的getopts问题。特别是下面的代码似乎不能使用多于1个参数。
如果我这样做:
./script.sh - t template-name -m terminal-name
只有模板变量才会填充,如果我这样做
./script.sh - m terminal-name -t template-name
只有终端被傀儡
while getopts ":m:t:r:" optname;
do
case "${optname}" in
"m")
terminal = $OPTARG
;;
"t")
echo "Using template: $OPTARG"
template = "$(cat $OPTARG)"
;;
"r")
reboot="yes"
tput setaf 1; echo "TERMINAL WILL BE REBOOTED WHEN DONE!!"
;;
"?")
echo "Unknown option $OPTARG"
;;
":")
echo "No argument value for option $OPTARG"
;;
*)
# Should not occur
echo "Unknown error while processing options"
;;
esac
done
shift $((OPTIND-1))
答案 0 :(得分:1)
我相信,如果您在一段时间内使用getopts,则不需要进行转换。