아래 요구 사항에 따라 두 개의 다른 스크립트에 대한 유효성 검사를 작성하려고합니다.
members.sh -name [name] -age [age] -sex [m/f] -add [address] -city [city] -country [country] -pincode [pincode] - mobile [mobile no] -email [email id]
나는 위의 매개 변수를 전달하려면, mobile
및 email
필수 옵션이되어 남은 선택 사항 age
, pincode
숫자 만해야하며, 우리가 더 다음 정수에 있어야합니다 또한 그 이동을 제공하지 않는 경우.
위의 내용을 어떻게 확인할 수 있습니까? 미리 도와 주셔서 감사합니다
예:
listhistory.sh -all -name [name] -mobile [mobile no] .... -opt9 [data9]
위의 스크립트는 9 개의 인수 내에서 -all
또는 -name [name]
또는 -mobile [mobile no]
또는 다른 인수를 사용하여 호출해야합니다 .
요구 사항을 약간 수정하고 다음과 같은 스크립트를 사용해야 할 수도 있습니다.
members.sh --name [name] --age [age] --sex [m / f] --add [address] --city [city] --mobile [mobile no] --email [email id]
괜찮다면 .. 다음과 같이 작성하는 것이 좋습니다.
#!/bin/sh
while getopts ":-:" arg
do
case "${arg}" in
-)
case "${OPTARG}" in
sex)
val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
sex=${val};
;;
age)
val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
age=${val};
;;
name)
val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
name=${val};
;;
add)
val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
add=${val};
;;
city)
val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
city=${val};
;;
mobile)
val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
mobile=${val};
;;
email)
val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
email=${val};
;;
esac;;
esac
done
err=0;
if [ -z "${sex+xxx}" ]; then echo sex is not set at all; err=1;fi
if [ -z "${name+xxx}" ]; then echo name is not set at all;err=1; fi
if [ -z "${age+xxx}" ]; then echo age is not set at all; err=1; fi
if [ -z "${city+xxx}" ]; then echo city is not set at all; err=1; fi
if [ -z "${add+xxx}" ]; then echo add is not set at all; err=1; fi
if [[ $err -eq 1 ]]
then
echo "incorrect usage"
exit 1
else
echo "All mandatory fields are set"
fi
추신 : 필자는 모든 필수 필드를 다루지 않았습니다. .. 5 개의 인수 [이름, 나이, 성별, 도시 및 추가]를 필수로 만드는 솔루션을 기반으로합니다. 전화와 이메일은 선택적 인수입니다.
코드는 입력을 받아 변수에 저장합니다. 추가 유효성 검사를 위해 코드를 직접 작성하세요.
샘플 출력 :
$ sh n.sh --name nishant --age 24 --sex M --add "New Delhi India" --city Noida
Parsing option: '--name', value: 'nishant'
Parsing option: '--age', value: '24'
Parsing option: '--sex', value: 'M'
Parsing option: '--add', value: 'New Delhi India'
Parsing option: '--city', value: 'Noida'
All mandatory fields are set
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다