[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:75049] Re: getopt(1)のinvalid option検出


たかはし@jbtです。
こんにちは。

set が成功しているようなので、

#! /bin/sh
a=`getopt abc $*`
echo $?
set -- $a

とかすればよさそうです。

Mon, Oct 23, 2000 at 08:37:58PM +0900 において
OZAWA -Crouton- Sakuro さん曰く:

> さくです。
> 
> シェルスクリプトでコマンドラインからオプションを与えたいとき、
> 
> set -- `getopt abc $*`
> 
> などとしますが、これに不適切なもの(上だと -d とか)がまじっていることはどう
> やったら検出できるでしょうか?
> 
> そんなの $? を見れば簡単だ、と思っていたのですが、
> 
> $ cat test.sh
> #!/bin/sh
> 
> set -- `getopt abc $*`
> echo $?
> 
> $ ./test.sh -d
> getopt: invalid option -- d
> 0
> 
> となります。
> 
> getopt(util-linux中のもの)自体はエラー時に $? に 1 を設定しているのですが、
> setの次の行で $? を調べても、既にsetコマンドのステータス値(どうやら常に成
> 功:0)が入ってしまっているようです。
> 
> どうするのがよいでしょうか?

------
Yuichi TAKAHASHI(yuichi _at_ jbt.co.jp)

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: