【发布时间】:2015-12-29 09:24:03
【问题描述】:
我正在尝试将 getopts 用于 bash 脚本。这个脚本可以有标志,所有这些标志都是强制性的,需要包含一个值。当应该包含值的强制标志之一为空时,getopts 使用下一个行标志作为其内容。如何防止这种情况发生?
这是我的例子:
#!/bin/bash
while getopts "A:B:" OPTION
do
case $OPTION in
A)
GILIA="$GILIA $OPTARG"
echo GILIA $GILIA
;;
B)
GILIB="$GILIB $OPTARG"
echo GILIB $GILIB
;;
esac
done
当使用带有值的两个标志时:
./test_opt2 -A aaa -B bbb
GILIA aaa
GILIB bbb
当使用“-A”标志为空时:
./test_opt2 -A -B bbb
GILIA -B
我知道这是 getopts 的正常/典型行为,我确信有办法解决这个问题...
有什么想法吗?
【问题讨论】: