(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
스크립트를 실행하는 셸이 아닌 에서 발생합니다. 변수 중 하나가 비어 있는 것 아닐까요?
~ $ bc <<< " < 1"
(standard_in) 1: syntax error
답변2
BC는산출1 조건이 참인 경우
테스트는
if [ $( bc <<< "test" ) == 1 ]
이에 대한 매뉴얼 페이지를 읽으면 [[
문자열 길이를 테스트할 것이라고 나와 있는데 이는 아마도 원하는 것이 아닐 수도 있습니다.