17

「-ab」パラメーターをスクリプトに渡すと、そのスクリプトが -ab を単一のパラメーターとして扱うように getopt コマンドを作成しようとしています。

#!/bin/sh
args=`getopt "ab":fc:d $*`
set -- $args
for i in $args
do
case "$i" in
        -ab) shift;echo "You typed ab $1.";shift;;
        -c) shift;echo "You typed a c $1";shift;;
esac
done

ただし、これは機能しないようです。誰でも何か援助を提供できますか?

4

4 に答える 4

14

getopt は、探しているものをサポートしていません。1 文字 ( -a) または長いオプション ( --long) のいずれかを使用できます。likeは: as option with argument-abと同じように扱われます。長いオプションの前にはダッシュが 2 つ付いていることに注意してください。-a bab

于 2010-10-20T06:19:40.037 に答える
1

これは UNIX のやり方ではありませんが、たとえばjava -cp classpath.

ハック: の代わりに-ab arg-b argとダミーのオプションがあります-a

そうすれば、-ab argあなたが望むことをします。(-b argあまりにも;うまくいけば、それはバグではなく、ショートカット機能です...)。

唯一の変更はあなたの行です:

-ab) shift;echo "You typed ab $1.";shift;;

になる

-b) shift;echo "You typed ab $1.";shift;;
于 2019-07-05T20:00:45.600 に答える
-4

getopt はロングフォーマットをサポートしています。SO でそのようなを検索できます。たとえば、ここを参照してください

于 2010-10-20T05:31:14.497 に答える