Wpis z mikrobloga

Proszę o wskazówkę jak zlikwidować błąd "oczekiwano operatora jednoargumentowego, błąd jest w lini formatowania zmiennej odczytu


#wartosc absolutna
abs() {
[ $1 -lt 0 ] && echo $((-$1)) || echo $1
}

#odczyt napięcia
x=0
while [ -z "$volt" ]; do
volt=/usr/local/bin/mbpoll -m rtu -a 1 -b 9600 -d 8 -s 1 -P even -o 3.00 -t 4 -r 1 -c 16 -1 /dev/ttyUSB0 | grep "[1\]:" | cut -f 2 | cut -f 1 -d ' '
x=$((x+1))
if [ "$x" -gt 10 ]; then
echo "Błąd odczytu Modbus RTU"
exit 3
fi
done

#formatowanie zmiennej odczytu napięcia
if [ $3 == int ]; then
echo "int"
elif [ $3 == uint ]; then
echo "uint"
fi

liczba1=$[volt/10]
liczba2=$[volt%10]
przecinek=($liczba2*10^2)/10
wynik1=$liczba1.$liczba2

echo "Napięcie: $wynik1 V"
wget -q --delete-after "http://$host:$port/json.htm?type=command&param=udevice&idx=$napiecieidx&svalue=$wynik1" >/dev/null 2>&1
date
echo "http://$host:$port/json.htm?type=command&param=udevice&idx=$napiecieidx&svalue=$wynik1"
ApacerPL - Proszę o wskazówkę jak zlikwidować błąd "oczekiwano operatora jednoargumen...

źródło: comment_EnwVITIRkOW0sEfIuroKxOXzsucb2pnR.jpg

Pobierz
  • 2
witam. dziękuję za odpowiedź, próbowałem wywalić = wedle rad z googla, lecz problem ten sam, pomogło za to usunięcie spacji przed i zza = > if [ $3=int ]; then

ps
w sumie te formatowanie zmiennych jest chyba nie potrzebne, skrypt działa bez niego poprawnie