스크립트를 실행하려고 할 때 구문 오류가 발생했습니다.

스크립트를 실행하려고 할 때 구문 오류가 발생했습니다.

(standard_in) 1: syntax errorBash 스크립트에서 다음 코드를 실행하려고 하면 오류( )가 발생합니다. 누군가 나에게 올바른 방향을 알려줄 수 있습니까?

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

bc참고: 변수에 부동 소수점이 포함되어 있으므로 계산에 사용해야 합니다 .
추가 정보:
저는 Raspbian Jessie를 실행하는 Raspberry Pi 2에서 이것을 실행하고 있습니다.
셰르본은#! /bin/bash

답변1

오류는 bc스크립트를 실행하는 셸이 아닌 에서 발생합니다. 변수 중 하나가 비어 있는 것 아닐까요?

 ~ $ bc <<< " < 1"
(standard_in) 1: syntax error

답변2

BC는산출1 조건이 참인 경우

테스트는

if [ $( bc <<< "test" ) == 1 ]

이에 대한 매뉴얼 페이지를 읽으면 [[문자열 길이를 테스트할 것이라고 나와 있는데 이는 아마도 원하는 것이 아닐 수도 있습니다.

관련 정보