(standard_in) 1: syntax error
Bashスクリプトで次のコードを実行しようとすると、エラー()が発生します。誰かが私に正しい方向を教えてもらえますか?
if [[ $(bc <<< "$p0value > $freezeMax") ]]; then
vP0='<a href="f1.php" class="blink">[Freezer 1: '
vP0=$vP0$p0value
vP0="$vP0 °C]</a>"
tempDIFF=$( bc <<< "$p0value-$freezeMax")
echo "$P0_name is currently at $p0value °C, which is $tempDIFF °C higher than it should be. Please attend to this." >> $emailPATH/email.txt
sendP0=1
elif [[ $(bc <<< "$p0value < $freezeMin") ]]; then
vP0='<a href="f1.php" class="blink">[Freezer 1: '
vP0=$vP0$p0value
vP0="$vP0 °C]</a>"
tempDIFF=$(bc <<< "$freezeMin-$p0value")
echo "$P0_name is currently at $p0value °C, which is $tempDIFF °C lower than it should be. Please attend to this." >> $emailPATH/email.txt
sendP0=1
else
vP0='<a href="f1.php" class="steady">[Freezer 1: '
vP0=$vP0$p0value
vP0="$vP0 °C]</a>"
sendP0=0
fi
bc
注:変数に浮動小数点が含まれているため、計算に使用する必要があります。
追加情報:
私はRaspbian Jessieを実行しているRaspberry Pi 2でこれを実行しています。
シェルボーン#! /bin/bash
答え1
エラーは、bc
スクリプトを実行しているシェルではなく発生します。変数の1つが空であるのではないでしょうか?
~ $ bc <<< " < 1"
(standard_in) 1: syntax error
答え2
BCは出力1 条件が真の場合
テストは
if [ $( bc <<< "test" ) == 1 ]
これについてのマニュアルページを読むと、[[
文字列の長さをテストすることがわかります。