• ベストアンサー

case文で困っています。

こんにちは! 当方Linux初心者です。 現在、シェルを作成しているのですが思うように表示されなくて 困っています。 どなたかご教授いただけないでしょうか? 目的:引数を「数字」か「それ以外」かを判別するシェルを作成 #!/bin/bash case $* in [0-9]+) echo "数字" ;; *) echo "その他" ;; esac 上記のように作成したところ、全てその他と判別してしまいます。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • tormmy77
  • ベストアンサー率44% (4/9)
回答No.1

後は自分で調べてね。 #! /bin/bash shopt -s extglob case $1 in [0-9]) echo "数字";; [0-9]+([0-9])) echo "数字";; *) echo "数字以外";; esac

sweetmusic
質問者

お礼

お礼が遅くなりまして申し訳ありませんでした。 早急な回答有難うございました。 今回の件は、回答を参考にさせて頂いた所解決に至りました。 今後も勉強させて頂きます。

その他の回答 (1)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

デフォルトの状態だと + は展開されなかったように思います。 なので、 [0-9][0-9]*) と書く必要があるでしょう。 もちろん、No.1 の方が回答されているように extglob を有効にしても構いません。 スクリプトの汎用性は下がってしまいますが・・・

sweetmusic
質問者

お礼

お礼が遅くなりまして申し訳ありませんでした。 早急な回答有難うございました。

関連するQ&A

専門家に質問してみよう