У меня есть сценарий 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