따라서 아래 코드에서는 사용자가 다음과 같이 내 코드에 입력하는 입력을 내 코드에서 읽도록 하려고 합니다.
#./MyProject -a -b OR -b -a
그러나 계속해서 구문 오류가 발생하고 프로그램에서 제공한 테스트에 실패합니다. 다음 테스트는 다음과 같습니다. 입력이 a&b가 아님(예: cz), 입력이 전혀 없음, 매개변수가 너무 적음, 매개변수가 너무 많음,
#Use just prints out the format like this : ./MyProject -a -b
- if ( ! getopts ":ab" arg) then
echo $use
fi
while [getopts ":ab" arg2]
do
case $arg2 in
t) if (($1 != "t" && $1 != "o")); then
echo $use
fi
esac
done
}
답변1
다음 예가 도움이 될 것입니다.
#!/bin/bash
usage() {
echo "Usage: $0 -a -b"
exit
}
while getopts ":a:b:" arg; do
case $arg in
a)
a=${OPTARG}
(($a == "t" || $a == "o")) || usage
;;
b)
b=${OPTARG}
;;
*)
usage
;;
esac
done
echo $a
echo $b