
Aqui está meu código (até agora):
var=$(sudo cat /dev/ttyUSB0)
echo "$var"
if [ "$var" == "OK" ]
then
echo "Everything is fine"
else
echo "Not OK"
fi
Como a saída deste script é “OK” também deverá escrever “Tudo está bem”, pois a porta serial envia “OK”. Mas só recebo a mensagem "Não está bem", o que é estranho para mim. O primeiro eco diz "OK", mas se eu quiser comparar a string, não é mais "OK".
Alguém pode me ajudar (sou novato em Linux)
Responder1
O comando sudo cat /dev/ttyUSB0
não retorna nenhuma saída. Use stty
em vez disso
sudo stty -F /dev/ttyUSB0
Responder2
Provavelmente há tabulação ou espaço em branco no arquivo var
. Canalize cat
o resultado para tr
excluí-los.
var=$(sudo cat /dev/ttyUSB0| tr -d " \t\n")
Responder3
Funciona se você remover os espaços em branco com os seguintes comandos:
var="${var#"${var%%[![:space:]]*}"}"
var="${var%"${var##*[![:space:]]}"}"
(https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-bash-variable) Obrigado por todas as respostas