この文書の現在のバージョンと選択したバージョンの差分を表示します。
linux:bash:check [2009/11/24 09:32] miyako 作成 |
linux:bash:check [2010/06/25 01:59] (現在) miyako |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
===== 入力チェック ===== | ===== 入力チェック ===== | ||
- | BASHでも正規表現を使えるのだけど、入力された文字をチェックしようと思ったら「それはbashでは出来ません。perlやPHPを使いましょうって事になる(--; | + | BASHでも正規表現を使えるのだけど、入力された文字をチェックしようと思ったら「それはbashでは出来ません。perlやPHPを使いましょう」って事になるのが多い(--; |
なんとか出来ないかいろいろ考えてみた。 | なんとか出来ないかいろいろ考えてみた。 | ||
- | + | ===== 半角英数の判定 ===== | |
- | + | ||
- | ===== 英数の判定 ===== | + | |
入力された文字が英数のみか判定する方法 | 入力された文字が英数のみか判定する方法 | ||
<code> | <code> | ||
INPUT_DATA=$1 | INPUT_DATA=$1 | ||
- | DATA_LEN=${#INPUT_DATA} | + | DATA_LEN=${#INPUT_DATA} #入力された文字列の長さを取得 |
- | DATA_CHK=${INPUT_DATA//[0-9a-z]/0} | + | DATA_CHK=${INPUT_DATA//[0-9a-z]/0} #半角英数のみを0に置き換える |
- | until [ ${DATA_LEN} -eq 0 ]; | + | until [ ${DATA_LEN} -eq 0 ]; #入力文字数だけ0で埋めた変数を作成 |
do | do | ||
DATA_CHK2=${DATA_CHK2}"0" | DATA_CHK2=${DATA_CHK2}"0" | ||
ライン 19: | ライン 17: | ||
done | done | ||
- | if [ ${DATACHK} = ${DATA_CHK2} ]; then | + | if [ ${DATA_CHK} = ${DATA_CHK2} ]; then #0に置き換えられた入力データと文字数だけ0で埋められた変数を比較する |
- | exit 0 | + | exit 0 #同じなら入力された文字は半角英数のみ |
else | else | ||
- | exit 1 | + | exit 1 #違うなら入力された文字に半角英数以外が含まれている |
fi | fi | ||
</code> | </code> | ||
ライン 29: | ライン 27: | ||
後はご自由に(^^) | 後はご自由に(^^) | ||
- | |||
- | |||
- |