我使用getopts,对于选项我只想接受一种类型的字母,但它可以被多次传递。不知道如何做到这一点,但它应该像ls -l
那样工作,ls -lllllll
和ls -l -l -l -l -l
都返回相同的内容,它只运行一次。
while getopts ":abc" opt; do
case "$opt" in
a) echo "a"
;;
b) echo "b"
;;
p) echo "c"
;;
?) echo "error"
;;
esac
done
因此,在本例中,我希望./program.sh -a
、./program.sh -aaaaaaa
(具有任意数量as)和./program.sh -a -a -a -a
都只返回一次“a”,然后./program.sh -ab
、./program.sh -abc
或./program.sh -a -c
之类的代码返回错误
2条答案
按热度按时间c6ubokkw1#
不要在分析选项时采取行动。只记录看到的选项,然后采取行动。
8tntrjer2#
您必须自己编写逻辑来处理同一个参数的多次调用。