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返品。