스크립트가 있습니다myscript.sh
#!/bin/sh
echo $1 $2
그 목적은 비슷합니다 ...
./myscript.sh foo bar
이것은 나에게 출력을 제공합니다 ...
foo bar
하지만 이 스크립트에 사용자 정의 명령 옵션이 포함되도록 하려면 어떻게 해야 합니까? 예를 들어...
./myscript.sh -a foo and corespond to $1
그리고
./myscript.sh -b bar and corespond to $2
답변1
당신은 사용해야합니다남자 1 강한 타격:
작은 예:
#!/bin/bash
while getopts "a:b:" opt # get options for -a and -b ( ':' - option has an argument )
do
case $opt in
a) echo "Option a: $opt, argument: $OPTARG";;
b) echo "Option b: $opt, argument: $OPTARG";;
esac
done
답변2
bash를 사용 중인 쉘로 나열했으므로 다음을 입력하십시오.
$ help getopts
그러면 다음과 같이 인쇄됩니다:
getopts: getopts optstring name [arg]
옵션 매개변수를 구문 분석합니다.쉘 프로시저는 Getopts를 사용하여 위치 매개변수를 옵션으로 구문 분석합니다.
OPTSTRING에는 인식할 옵션 문자가 포함되어 있습니다. 문자 뒤에 콜론이 오면 옵션에는 인수가 있어야 하며 공백으로 구분해야 합니다.
각 호출에서 getopts는 다음 옵션을 쉘 변수 $name에 배치하고 name이 존재하지 않으면 초기화하며 처리될 다음 인수의 인덱스를 쉘 변수 OPTIND에 배치합니다. OPTIND는 쉘이나 쉘 스크립트가 호출될 때마다 1로 초기화됩니다. 옵션에 인수가 필요한 경우 getopts는 인수를 쉘 변수 OPTARG에 배치합니다.
Getopts는 일반적으로 위치 인수($0 - $9)를 구문 분석하지만 더 많은 인수가 제공되면 대신 구문 분석됩니다.
관련된: