我在使用getopts命令时遇到了问题。
当我想使用一个需要相同参数的选项时,它在第一个需要参数的选项(例如-i)之后停止运行程序。 因此,当我想让它使用-id或-i-d选项时,它会在使用"-i "选项后停止运行while循环,而忽略-d选项。
我怎样才能让循环继续,并且让-d选项也执行呢?
传递参数的格式可以是。"-id参数 "或"-i -d参数"
我目前使用$p来抓取当前每个选项的最后一个参数,这是在dash中的linux ubuntu shell。
To make the code smaller and quicker to read:
for p do :; done
echo arguments === $1 $2 $3
echo p = $p
while getopts ":hva:b:d:g:i:u:w:" opt;
do
case "$opt" in
i)
checkdir $p
fileinfo $p
;;
***OTHER OPTIONS FOLLOW SIMILAR FORMAT***
esac
done
当我想使用一个需要参数的选项时,它在第一个需要参数的选项之后停止运行程序(例如-i)。所以当我想让它使用-id或-i-d选项时,它将在使用"-i "选项后停止运行while循环。
如果你 希望它采取的选项... -i -d,你必须(因为他们每个人都 需要一个参数)在每个选项后都提供一个参数,例如。… -i argument1 -d argument2 …
. 用 -id
或 -i -d
的 d
或 -d
,分别取为选项的参数。