Unix全般 -> シェル -> Bash

NumericCheck

入力された(変数)値が数値かをチェックする

正しいチェック 例:1

入力されたデータに数値(0-9)以外の値が含まれていると
IF条件に合致するので(Not Numeric)になる。
合致しない(ELSE)場合は(Numeric)になる。

echo "Input : \c"
read ANY

if [ -n "`echo $ANY | awk '$1~/[^0-9]/`" ]; then
  echo "Not Numeric"
else
  echo "Numeric"
fi


実行例
Input : 30
Numeric

Input : 30a
Not Numeric

Input : x
Not Numeric

正しいチェック 例:2

入力された変数値でダミーの計算を実行し数値以外が含まれる場合は
エラーになるので戻値が0以外になるのを利用しチェックを行う。
計算結果は表示させないように/dev/nullへ捨てる

echo "Input : \c"
read ANY
expr $ANY + 0 > /dev/null 2>&1
if [ $? -eq 0 ]; then
  echo "Numeric"
else
  echo "Not Numeric"
fi

実行例
Input : 100
Numeric

Input : 100b
Not Numeric

Input : i
Not Numeric

正しいくないチェック 例:2
入力されたデータに数値(0-9)が含まれていると
IF条件に合致するので(Not Numeric)になる。
合致しない(ELSE)場合は(Numeric)になる。
ただしこの場合、数値以外の文字が含まれる場合もIF条件に合致してしまう。


echo "Input : \c"
read ANY

if [ -n "`echo $ANY | awk '$1~/[0-9]/`" ]; then
  echo "Numeric"
else
  echo "Not Numeric"
fi

実行例
Input : 0
Numeric

Input : 10k
Numeric             * 間違い

Input : k
Not Numeric



      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google