1

getopts文字の代わりに文字列を使用してスイッチを処理する方法があるかどうかを確認しています。

たとえば、次のようなものを提供したいと思います。

script.ksh -file1 file1.txt -file2.txt

それ以外の:

script.ksh -f file1.txt -g file2.txt

これはunixで可能getoptsですか?

4

2 に答える 2

1

外部getopt(「s」がないことに注意)は長いオプションを処理できますが、それ自体に欠点があります。

BashFAQ / 035から:

getopt(1)は絶対に使用しないでください。getoptは、空の引数文字列、または空白が埋め込まれた引数を処理できません。それがかつて存在したことを忘れてください。

于 2010-08-06T00:52:40.430 に答える
1

いいえ、それはできませんgetoptscaseたとえば、スイッチを使用して、独自の解析を行う必要があります。

while (($# > 0))
do
    case "$1" in
    -file1)
        shift
        file1=$1;;
    -file2)
        shift
        file2=$1;;
    esac
    shift
done
于 2010-08-05T16:09:57.503 に答える