小编Gil*_*pid的帖子

getopts - 如果标志为空 getopts 使用下一个标志

我正在尝试将 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
Run Code Online (Sandbox Code Playgroud)

当使用两个带有值的标志时:

./test_opt2 -A aaa -B bbb
GILIA aaa
GILIB bbb
Run Code Online (Sandbox Code Playgroud)

当使用“-A”标志为空时:

./test_opt2 -A  -B bbb
GILIA -B
Run Code Online (Sandbox Code Playgroud)

我知道这是 getopts 的正常/典型行为,并且我确信有一种方法可以解决这个问题......

有任何想法吗?

bash getopts

5
推荐指数
1
解决办法
4593
查看次数

标签 统计

bash ×1

getopts ×1