• ベストアンサー

bashで数値チェック

表題通り、パラメータで渡された文字が数値でない場合にエラーとしようと思っております。正規表現[0-9]等を使って行いたいと思っておりますが、一番シンプルだと思われる方法を教えて下さい。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4879/10320)
回答No.1

手元にunixが無いので検証できてませんが、 X=`expr "$PARM" : '\([0-9][0-9]*\)'` if test "$PARM" = "$X" then num=true else num=false fi 最初のexprでは、先頭から数字が続いた部分がXにセットされます。数字以外のものが含まれていれば、元の文字列と不一致になるはずです。 あと、桁数に上限があれば、これのほうがわかりやすいかな。 case "$PARM" in [0-9]) num=true ;; [0-9][0-9]) num=true ;; [0-9][0-9][0-9]) num=true ;; [0-9][0-9][0-9][0-9]) num=true ;; *) num=false ;; esac

Vargas
質問者

お礼

ありがとうございました。参考にさせて頂きます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • k-841
  • ベストアンサー率27% (129/465)
回答No.2

正規表現を使うことが必須でなければ、testのエラーを使うという手もありそうです。testの仕様にもよると思いますが・・・ /usr/bin/test "$PARAM" -eq 0 > /dev/null 2>&1 ; if [ $? -gt 1 -o "$PARAM" = "" ] ; then echo error ; fi

Vargas
質問者

お礼

ありがとうございました。参考にさせて頂きます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正規表現のチェックについてお聞きしたい事があります

    正規表現のチェックについてお聞きしたい事があります DBデータを修正するのにテキストボックスから数値を入力して int型で受け取り、SQLを投げる処理を作成しているのですが この入力された値が数値である事をチェックする場合 正規表現を使って、数値以外である場合にはねる方法か Try~catch文を使って数値以外である場合にはExceptoinを受け取って エラー処理を記述する方法か、どちらの方がより推奨されますか?

    • ベストアンサー
    • Java
  • 正規表現でメタ文字チェック

    正規表現でメタ文字チェック 正規表現で半角メタ文字が入力されていた場合、エラーにしたいと思っています。 /!|"|#|%/ しかし、上記の書き方だと、すべてのメタ文字を書かなければいけないため あまり見栄え的によくないのですが、何か他に良い方法はありませんでしょうか? お分かりになる方よろしくお願い致します。

    • ベストアンサー
    • PHP
  • ドットを含む数値の入力チェックがわからない

    phpの入力チェックの正規表現が分からなかったので質問します。 数値だけかというチェックは”^[0-9]+$”で判断できるのですが、 少数点第一位までを含む、例えば”312.5”のチェックはどうするのでしょうか? また、少数点を含まない整数(例えば352)も同時にokという事にしたいのですが、 どうすればよいのでしょうか?

    • ベストアンサー
    • PHP
  • 正規表現

    正規表現で 数値と半角記号(!#$%()~|-^@[;],./`{+*}_)が入っているというものを表現したいのですが、、、 下記のような正規表現をすると、エラーになってしまいます。何かよい方法はありませんか? ^[a-zA-Z0-9\-_!#$%()~|-^@[;],./`{+*}_]*$ 又、携帯電話のチェックをしたいのですが、 1文字以上の文字列があってというような処理にしたいのですが、何かよい方法はないでしょうか? ereg( "@docomo\.ne\.jp$", $email )

    • ベストアンサー
    • PHP
  • 正規表現を使った入力値のチェック

    こんにちは、yukimura1024です。 perlでブラウザのフォームに入力された値をチェックしたいのですが、 入力された値が「全角文字のみか」と「全角カタカナのみか」 という2種類のチェックのしかたがわかりません。 「数値のみか」のチェックは正規表現を使ってできたのですが、 これと同じように正規表現を使って、この2つの全角チェックをする 方法はないでしょうか? 数値チェックは以下の方法でやっています↓ if ($str_txt_yuubin =~ /[^0-9]/) { print "「郵便番号」を半角数字で入力してください。<br>\n"; } ご存知の方がいましたら教えていただけると助かります。 よろしくお願い致します。

    • ベストアンサー
    • Perl
  • 数値を検索する。ただし、桁区切り文字(カンマ、ピリオド、スペース)も含む

    お世話になります。 今回はじめて投函させていただきます。 正規表現が初心者なものですのでご教示いただければ と思っております。 文章中の数値部だけを取り出すプログラムを作って おります。それで、正規表現を使って検索したい と考えております。 例えば 12345 などとなっている部分全体や 123,456 などとなっている部分全体 123.456 などとなっている部分全体 123 456 などとなっている部分全体 123,456 789.123 などとなっている部分全体 を検索したいと思っています。 先頭は半角数値(0-9)で、末尾も必ず半角数値(0-9) です。 数値と数値の間に許されるのはカンマ、ピリオド 半角スペースです。それらの文字の後に数値 が来ていれば、その後ろの数値も続けて検索範囲 としたいと思っています。 このような条件の正規表現はどのようにすれば よいでしょうか。 よろしくお願いいたします。

  • ACCESS VBAでの正規表現チェックについて

    いつもお世話になっています。 現在ACCESS2003で開発を行っているのですが、文字の入力チェックで悩んでいます。 正規表現チェックを使用し 半角英数字と"-", "_", "!", "@", "+", "/", "*"以外の文字が入力されればエラーメッセージを表示させようとしているのですが、うまく動作しません。 ●現在の処理 '検証結果フラグ b_error = True '入力許可文字列 s_ok_text = "*[”正規表現”]*" '入力文字列が空で無い場合はチェック処理を実行する If Not IsNull(”入力文字”) Then If ”入力文字” Like s_ok_text Then '入力許可文字列以外が含まれていた場合はエラーを返す b_error = False End If End If s_ok_textに入力可能文字を設定しているのですが、上記入力許可文字の設定の仕方がわからない状況です。 正規表現のチェックに詳しい方がいましたら、上記チェックの方法をご教授頂きたく思います。 宜しくお願い致します。

  • 同じセル内に数値と単位が入っていても計算はできるのか?

    わかる方教えてください。 例えば、()内を同じ一つのせるとして、普通は数値と文字が 同じセル内に混在している場合、数式をいれても、合計はエラー となってしまいます。 (100円)×(100個)=(エラー×) 数値と単位が同じセル内に入力してあっても計算式できる方法はないでしょうか? こんな事って、できるのでしょうか??

  • 数値の文字型変換

    ACCESSで、数値を文字型に変換したいが、桁数を揃えたいのでリーディング 0 をつけた形で結果を得たい。 どんな関数で、パラメータの指定はどうしたらいいですか?

  • 正規表現で数値を検索しての消去の仕方

    正規表現に関する質問です。 _(アンダーバー)以下の数値(1,2,21・・・)を、検索して消去する場合は、 どのようにすればいいでしょうか?? わかる方よろしくお願い致します。

このQ&Aのポイント
  • インク交換後、EW-M752Tプリンタのシアンが印刷されなくなりました。
  • 使用しているのは純正のインクであり、ノズルチェックでも印刷されません。
  • EPSON社製品であるこの問題を解決する方法を教えてください。
回答を見る

専門家に質問してみよう