Erro de sintaxe ao tentar executar o script

0

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 &deg;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 &deg;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 &deg;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

    
por Jim 13.01.2017 / 13:25

2 respostas

1

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.

    
por 13.01.2017 / 14:07
2

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
    
por 13.01.2017 / 14:57