
Hier ist mein Code (bisher):
var=$(sudo cat /dev/ttyUSB0)
echo "$var"
if [ "$var" == "OK" ]
then
echo "Everything is fine"
else
echo "Not OK"
fi
Da die Ausgabe dieses Skripts "OK" ist, sollte es auch "Alles ist in Ordnung" schreiben, da der serielle Port "OK" sendet. Aber ich bekomme nur die Meldung "Nicht OK", was für mich seltsam ist. Das erste Echo sagt "OK", aber wenn ich den String vergleichen möchte, ist es nicht mehr "OK".
Kann mir jemand helfen (ich bin ein Linux-Neuling)
Antwort1
Der Befehl sudo cat /dev/ttyUSB0
gibt keine Ausgabe zurück. Verwenden Sie stty
stattdessen
sudo stty -F /dev/ttyUSB0
Antwort2
Wahrscheinlich sind im var
.Pipe- cat
Ergebnis Tabulatoren oder Leerzeichen enthalten, um tr
diese zu löschen.
var=$(sudo cat /dev/ttyUSB0| tr -d " \t\n")
Antwort3
Es funktioniert, wenn Sie die Leerzeichen mit den folgenden Befehlen entfernen:
var="${var#"${var%%[![:space:]]*}"}"
var="${var%"${var##*[![:space:]]}"}"
(https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-bash-variable) Danke für alle Antworten