Linux: getopts 명령
기능 은 주로 명령 행 옵션 과 파 라 메 터 를 처리 하 는 데 사 용 됩 니 다.그것 의 장점 은:
일반적으로 명령 행 인 자 를 처리 할 때 순환 을 사용 하고 getopts 를 여러 번 호출 합 니 다.분석 할 내용 이 없 을 때 getopts 는 종료 상태 FALSE 를 설정 합 니 다.
getopts 에 사용 할 변수
기본 문법:
getopts OPTSTRING VARNAME [ARGS...]
Example
getopts fA:x VARNAME
# getopts -f,-A,-x ,-A
오류 보고 모드
상세 오류 보고 모드
자세 한 오류 보고 모드 에서 getopts 가 잘못된 옵션 을 만 났 을 때 VARNAME 의 값 은 '?' 로 설 정 됩 니 다.또한 변 수 는 OPTARGS 가 설정 되 지 않 습 니 다.만약 매개 변 수 를 찾 지 못 하면 VARNAME 의 값 역시 '?' 로 설 정 됩 니 다.변수 OPTARGS 가 설정 되 지 않 고 오류 메 시 지 를 인쇄 합 니 다.
오류 보고 모드 억제
오류 보고 억제 모드 에서 getopts 가 잘못된 옵션 을 만 났 을 때 VARNAME 의 값 은 '?' 로 설 정 됩 니 다.또한 변수 OPTARGS 는 옵션 문자 로 설 정 됩 니 다.매개 변 수 를 찾 지 못 하면 VARNAME 의 값 도 ':' 로 설 정 됩 니 다. 변수 OPTARGS 에는 옵션 문자 가 포 함 됩 니 다.
실례
#!/bin/bash
vflag=off
filename=""
output=""
function usage(){
echo "USAGE"
echo "myscript [-h] [-v] [-f <filename>] [-o <filename>]"
exit -1
}
while getopts :hvf:o: opt
do
case "$opt" in
v)
vflag=on
;;
f)
if [ ! -f $filename ]
then
echo "The source file $filename doesn't exist!"
exit
fi
;;
o)
if [ ! -d $output ]
then
echo "The output path 'dirname $output doesn't exist"
exit
fi
;;
h)
usage
exit
;;
:)
echo "The option -$OPTARG requires an argument"
exit 1
;;
?)
echo "Invalid option: -$OPTARG"
usage
;;
esac
done
실행 결과
bigship@bigship-virtual-machine:~/shell_learning/shift$ ./getopts2 -h
USAGE
myscript [-h] [-v] [-f <filename>] [-o <filename>]
bigship@bigship-virtual-machine:~/shell_learning/shift$ ./getopts2 -vf
The option -f requires an argument
bigship@bigship-virtual-machine:~/shell_learning/shift$ ./getopts2 -vf /etc/passwd -o /tmp/output.log
bigship@bigship-virtual-machine:~/shell_learning/shift$
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.