- 締切済み
getoptsの使い方を教えてください
sh組み込みのgetoptsではなく、/bin/getoptsをcshスクリプトの中で使用してみようと試みmanを読んでみたのですが上手く動作せず、getoptsの使用方法を教えて頂きたく思っています。 例として、optionを -a -b <file> のようにaと引数を取る-bを使用することが出来るような場合に関して具体的にスクリプトはどのようになるのでしょうか? イメージとしてはcshで以下のようなものになるかと思われます: #! /bin/csh -f set noglob set mode_a = "" set mode_b = "" set mode_b_file = "" while ($#argv) switch ($1) case -a : set mode_a = 1 breaksw case -b : set mode_b = 1 if($#argv >= 2) then shift set mode_b_file = $1 else echo "[Error]: -b is followed by <file_name>" exit 1 endif breaksw default: echo "[Warning]: ignored option $1" endsw shift end echo "option a is $mode_a b is $mode_b b_file is $mode_b_file" exit 0 以上宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mana005
- ベストアンサー率27% (3/11)
先調べたですけど 「getopts sh and bash builtin. Easier to use and generally better than getopt, though of course not available in csh-like shells. 」 というわけで cshでgetoptsは使えないみたい。。。。
- mana005
- ベストアンサー率27% (3/11)
個人的にcshはあまり好きじゃないですけど。。。 cshを使いたい場合は set argv = (`getopt abf: $*`)
補足
有難うございます。 getoptではなくgetoptsを使用した場合はどのようになりますでしょうか?両者は引数のとり方が違うようで、上記getoptの部分をgetoptsにしただけではやはり上手く行きませんでした。 以上引き続き宜しくお願い致します。
お礼
お返事遅くなりました。 分かりました、cshでは使えないとのこと、認識しました。 どうも有難うございました。