getopts
文字の代わりに文字列を使用してスイッチを処理する方法があるかどうかを確認しています。
たとえば、次のようなものを提供したいと思います。
script.ksh -file1 file1.txt -file2.txt
それ以外の:
script.ksh -f file1.txt -g file2.txt
これはunixで可能getopts
ですか?
外部getopt
(「s」がないことに注意)は長いオプションを処理できますが、それ自体に欠点があります。
getopt(1)は絶対に使用しないでください。getoptは、空の引数文字列、または空白が埋め込まれた引数を処理できません。それがかつて存在したことを忘れてください。
いいえ、それはできませんgetopts
。case
たとえば、スイッチを使用して、独自の解析を行う必要があります。
while (($# > 0))
do
case "$1" in
-file1)
shift
file1=$1;;
-file2)
shift
file2=$1;;
esac
shift
done