getopt(3)
ksh93은 Sun Microsystems가 2004년 봄에 , 및 에 대해 Bourne Shell
도입한 것과 동일한 방식 으로 긴 옵션을 지원합니다 ksh88
.
예를 들어 다음을 사용할 수 있습니다.
getopt(argc, argv, "V(version)");
--version
짧은 옵션에 대한 긴 별칭을 만듭니다 -V
.
그러나 Solaris libc는 ksh93
사용되지 않지만 getopt(3)
기호로 시작하는 짧은 옵션을 지원하기 위해 자체 구현이 내부적으로 사용됩니다 +
.
ksh93
내장된 구현과 iff 로 이 기능을 사용할 수 있는 방법이 있습니까 getopts(1)
? 어떻게 작동합니까?
답변1
다음은 내가 시도한 getopts 사용법의 예입니다.
#!/bin/ksh
#Default value
ONE=123
TWO=456
# getopts configuration
USAGE="[-author?Andre Gelinas <[email protected]>]"
USAGE+="[-copyright?2018]"
USAGE+="[+NAME?TestGetOpts.sh]"
USAGE+="[+DESCRIPTION?Try out for GetOps]"
USAGE+="[o:one]#[one:=$ONE?First.]"
USAGE+="[s:second]#[second:=$TWO?Second.]"
USAGE+="[t:three]:[three?Third.]"
USAGE+=$'[+SEE ALSO?\aman\a(1), \aGetOpts\a(1)]'
while getopts "$USAGE" optchar ; do
case $optchar in
o) ONE=$OPTARG ;;
s) TWO=$OPTARG ;;
t) THREE=$OPTARG ;;
esac
done
print "ONE = "$ONE
print "TWO = "$TWO
print "THREE = "$THREE
--one 또는 -o를 사용할 수 있습니다. --man 또는 --help를 사용해도 작동합니다. 또한 -o 및 -s는 숫자일 뿐이지만 -t는 무엇이든 허용할 수 있습니다. 그건 그렇고, 당신은 한 번 살펴보고 싶을 수도 있습니다https://docstore.mik.ua/orelly/unix3/korn/appb_11.htm반품.