0

ユーザーが愚かなことを入力したかどうかを確認する必要がある ash スクリプトがあります。適切な使用法は次のとおりです。

script <read | monitor> -s <system | event> [-f filter] [-n number]

そして、ユーザーがたとえば次のように呼び出したかどうかを検出する必要があります。

script read -s system dummydummy

適切な引数を解析するために、私は使用します

while getopts "s:f:n:" Option
do
  case $Option in
    s)logname=${OPTARG};;
    f)filterspec=${OPTARG};;
    n)numlines=${OPTARG};;
    *)exit $E_OPTERROR;;   # DEFAULT
  esac
  OPRIND=${OPTIND}
done

解析されていない引数が残っているかどうかを検出するにはどうすればよいですか?

4

1 に答える 1

1

whileループを終了した後にこれを使用できます。

shift $(($OPTIND - 1))
echo "Remaining arguments: $@"

bashのようなシェルで動作します。ash でも動作するかどうかをお知らせください。

于 2013-01-21T09:13:51.687 に答える