bc irá produzir 1 se a condição for verdadeira
teste deve ser
if [ $( bc <<< "test" ) == 1 ]
a página man de leitura sobre [[
indica que isso testará o comprimento da string, isso pode não ser o que você deseja.
Estou recebendo um erro ( (standard_in) 1: syntax error
) tentando executar o código abaixo em um script bash. Alguém poderia me indicar a direção correta?
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
FYI: as variáveis contêm números flutuantes, então eu preciso usar bc
para fazer os cálculos.
Informações extra:
Estou executando isso em um Raspberry Pi 2 executando Jessie Raspbian.
O shebang é #! /bin/bash
O erro vem de bc
, não do shell que está executando seu script. Talvez uma das variáveis esteja vazia?
~ $ bc <<< " < 1"
(standard_in) 1: syntax error
Tags bash stdin shell-script