本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
標準出力の値を判定します。
標準出力を取得して表示
echo '264.3' |while read a;do echo $a; echo $a; done;
出力結果
264.3 264.3
セミコロンは改行と心得よ
上記のスクリプトは、
#!/bin/bash echo '264.3' |while read a do echo $a echo $a done
と同じ意味ですな。
判定
数値判定にはtestを利用する。
但し、整数しか扱えないので注意する事。小数点以下が入ると、文字列として扱われる。
if test 1 -eq 1;then echo 'true'; fi;
これを小数点以下を加えたtestしてみると、
# if test 1.1 -eq 1;then echo 'true'; fi; bash: test: 1.1: integer expression expected
integer expression expectedが出てしまう。
もし、小数点以下を比較しなければならない場合は、bcを利用する事
# echo "1.1 > 1" | bc 1
注意 bcは標準入出力から値を取得するようにあらかじめできてる。
標準出力を取得して判定
echo '101' |while read a;do if test $a -gt 100;then echo '-4℃以下'; else /usr/local/sbin/temperature/temper | awk -F, '{print $2}' | awk -F. '{print $1"."substr($2,1,1)"℃"}'; fi; done;
100以上が入ってきたら、-4℃以下と表示する
見にくいので改行つきで表示(少しは見やすいか?)
#!/bin/bash echo '101' |while read a do if test $a -gt 100;then echo '-4℃以下' else /usr/local/sbin/temperature/temper | awk -F, '{print $2}' | awk -F. '{print $1"."substr($2,1,1)"℃"}' fi done
温度計から値を取得して表示
実は、この温度計-4℃以下が計測できない。200℃以上の表示になってしまうので、異常値が出たら、-4℃以下と表示するように調整した。
/usr/local/sbin/temperature/temper | awk -F, '{print $2}' | awk -F. '{print $1}' |while read a;do if test $a -gt 100;then echo '-4℃以下' >> /usr/local/sbin/temperature/digi.html; else /usr/local/sbin/temperature/temper | awk -F, '{print $2}' | awk -F. '{print $1"."substr($2,1,1)"℃"}' >> /usr/local/sbin/temperature/digi.html; fi; done;