getopts bash запрос для проверки аргумента - PullRequest
0 голосов
/ 07 мая 2020

У меня есть сценарий getops, как показано ниже .. Я столкнулся с проблемой с этим сценарием .. Использование:

Usage: ./getoptstest.sh [-f] [ -i INSTANCES ]

Если я прохожу,. / Getoptstest. sh -f -i 1.2 .3.4, он отлично работает с результатом,

Result
    f good
    i good
    1.2.3.4
    No args

Но если я переключу параметры,. / Getoptstest. sh -i, он принимает «-f» в качестве аргумента для «- i ".

Result:
    i good
    -f -->This is the result of echo statement printing the argument for -i.
    No args

Я хочу, чтобы сценарий строго проверял аргумент -i и не принимал -f в качестве аргумента. -f - это другой параметр сам по себе. Пожалуйста, помогите мне, что нужно изменить для этого.

Вот мой сценарий ..

while getopts ":hfi:" opt; do
    case $opt in
        i)  INSTANCES="$OPTARG"
            echo "i good"
            echo $INSTANCES
            ;;
        f)  FORCE=1
            echo "f good"
            ;;
        h)  usage
            exit;;
        \?) echo "Usage: Invalid option: -$OPTARG" >&2
            ;;
        :)  echo "Option -$OPTARG requires an argument." >&2
            exit 1
            ;;
        *)  usage 
            exit;;
    esac
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...