2

そのため、bash の組み込み getopts を使用して引数処理を処理しようとしていますが、奇妙な結果が得られます。これが私のテスト スクリプトです。

#!/bin/sh

HOST=
OWNER=
GROUP=

while getopts "h:o:g" OPTION;
  do
    case $OPTION in
    h)
      HOST=$OPTARG
      ;;
    o)
      OWNER=$OPTARG
      ;;
    g)
      GROUP=$OPTARG
      ;;
  esac
done

echo "$HOST - $OWNER:$GROUP"

それでも、これを使用してスクリプトを実行すると;

./test.sh -h test.host.com -o skittles -g whatever

私の最後の引数が引き込まれないか、ドロップされます。エコーからの私の結果は次のとおりです。

test.host.com - skittles:
                         ^ where's my group value? O.o

誰がこれを引き起こしているのか知っていますか?

ありがとう。

4

2 に答える 2

7

引数があることを期待-gしているようですが、オプション宣言には、に関連する「:」はありません-g

これが必要です:

h:o:g:
于 2012-03-06T14:46:50.347 に答える
3

:オプション文字列がg の後にa がありません。

于 2012-03-06T14:46:03.627 に答える