셸 스 크 립 트 옵션 설정 및 해석
비교적 복잡 한 셸 스 크 립 트 는 보통 여러 옵션 과 입력 을 지원 합 니 다. 보통 형식 은
-[a-z,A-Z] [filename/settings]
입 니 다. 콘 솔 에서 스 크 립 트 이름 을 입력 할 때 도움말 정 보 를 표시 합 니 다.도움말 보이 기
Usage () {} 함 수 를 스 크 립 트 의 도움말 함수 로 정의 할 수 있 습 니 다. 도움말 정보 가 간단 할 때 echo 명령 으로 이 루어 집 니 다. 매개 변수 가 많 을 때 cat 도구 와 EOF 기호 에 맞 춰 큰 설명 문 자 를 정의 할 수 있 습 니 다. 예 를 들 어:
Usage()
{
cat <
이 비트 명령 의 호출 형식 은 다음 과 같이 정 의 됩 니 다.
bet
이것 도 흔히 볼 수 있 는 셸 스 크 립 트 매개 변수 형식 입 니 다. options 가 많 을 때 셸 스 크 립 트 는 python 에 있 는 argpase 와 같은 도구 패키지 가 없습니다. 이 매개 변수 설정 을 어떻게 해석 해 야 합 니까?이 럴 때 는 구체 적 인 문 제 를 구체 적 으로 분석 해 야 합 니 다. 실제로 셸 스 크 립 트 는 매개 변수 에 대한 읽 기와 해석 도 매우 유연 합 니 다.간단 한 옵션 매개 변수
만약 매개 변수 가 - a, - N 과 같은 간단 한 식별 자 일 뿐 이 라면 간단 한 if... then... fi 문 구 를 사용 하여 해석 할 수 있 습 니 다.
if [ $1 = -a ] ; then
REG="-a"
HOWLONG=5
fi
복잡 한 옵션 매개 변수
매개 변수 뒤에 구체 적 인 설정 파일 이름 이나 옵션 이 있다 면 - a, - N 과 같은 접두사 뒤에 구체 적 인 설정 문자열 이 있 습 니 다. 예 를 들 어 매개 변 수 는 다음 과 같 습 니 다.
-T Estimated job length in minutes, used to auto-set queue name
-q Possible values for are "verylong.q", "long.q"
and "short.q". See below for details
Default is "long.q".
-a Architecture [e.g., darwin or lx24-amd64]
-p Lower priority [0:-1024] default = 0
-M Who to email, default = `whoami`@fmrib.ox.ac.uk
-j Place a hold on this task until job jid has completed
-t Specify a task file of commands to execute in parallel
-N Specify jobname as it will appear on queue
-R Max total RAM to use for job (integer in MB)
-l Where to output logfiles
-m Change the SGE mail options, see qsub for details
-z
그러면 이런 방식 을 사용 할 수 있다.
nargs=$#
if [ $nargs -eq 0 ] ; then
usage
fi
set -- `getopt T:q:a:p:M:j:t:z:N:R:Fvm:l:s: $*`
result=$?
if [ $result != 0 ] ; then
echo "What? Your arguments make no sense!"
fi
if [ $nargs -eq 0 ] || [ $result != 0 ] ;
then usage
fi
위의 스 크 립 트 세 션 에서 가장 중요 한 것 은 다음 과 같 습 니 다.
set -- `getopt T:q:a:p:M:j:t:z:N:R:Fvm:l:s: $*`
이 문장 은 매우 중요 합 니 다. 그 중에서 두 개의 명령 행 도 구 를 사 용 했 습 니 다. getopt 와 set. getopt 의 호출 방법 은 다음 과 같 습 니 다.
getopt options optstring parameters
이 곳 의 optstring 은
T:q:a:p:M:j:t:z:N:R:Fvm:l:s:
테이프 값 옵션 입 니 다. 알파벳 뒤에 콜론 (:) 을 추가 하려 면 유사 한 기능 의 접두사 기 호 를 함께 놓 을 수 있 습 니 다. 이 문장의 "Fvm"과 같 습 니 다. 매개 변수 에 잘못된 매개 변수 가 포함 되 어 있 으 면 잘못된 정 보 를 제공 합 니 다.getopt 에서 파 라 메 터 를 포맷 한 후 set 에서 명령 행 의 원본 파 라 메 터 를 교체 합 니 다.예 를 들 면:
#!/bin/bash
set -- `getopt a:b:c "$@"`
echo "param = $@"
while [ -n "$1" ]
do
case "$1" in
-a) echo "found option a and param = $2"
shift ;;
-b) echo "found option b and param = $2"
shift ;;
-c) echo "found option c, no param." ;;
--) ;;
*) echo "what's this?"
break ;;
esac
shift
done
파일 이름 저장 getopttest. 출력 은 다음 과 같 습 니 다:
$ getopt_test -a test -b test -e
getopt: invalid option -- 'e'
param = -a test -b test --
found option a and param = test
found option b and param = test
마지막 으로 셸 스 크 립 트 에 있 는 특수 기호의 의 미 를 첨부 합 니 다.
Shell 스 크 립 트
$0、$?、$!、$$、$*、$#、$@
등의 의미$$Shell 자체 의 PID (ProcessID) $!Shell 이 마지막 으로 실행 하 는 배경 Process 의 PID $?마지막 으로 실 행 된 명령 의 끝 코드 (반환 값) $- Set 명령 으로 설 정 된 플래그 를 사용 하면 모든 매개 변수 목록 을 볼 수 있 습 니 다.예 를 들 어 "* 모든 매개 변수 목록. 예 를 들 어"8727 ° 모든 매개 변수 목록.예 를 들 어 "*"로 묶 은 경우 "$1 $2... $n"형식 으로 모든 인 자 를 출력 합 니 다. @ 모든 매개 변수 목록 입 니 다. 예 를 들 어 "@ 모든 매개 변수 목록 입 니 다."@ 모든 매개 변수 목록"과 같 습 니 다. 예 를 들 어 "@"으로 묶 은 경우 "$1""2"... "2"... "2"... "n"형식 으로 모든 매개 변 수 를 출력 합 니 다. $\#Shell 에 추 가 된 매개 변수 개수 $0 Shell 자체 의 파일 이름 1 ~ 1 ~ n 이 Shell 에 추 가 된 매개 변수 값 입 니 다. $1 번 은 1 번 매개 변수, 2 번 은 2 번 매개 변수...
확장 읽 기:
getopt: 명령 행 옵션, 매개 변수 처리:https://blog.csdn.net/tdmyl/article/details/24714297 제1 3 장 학습 노트:https://blog.csdn.net/su1216/article/details/10019221
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.