
Aquí está mi código (hasta ahora):
var=$(sudo cat /dev/ttyUSB0)
echo "$var"
if [ "$var" == "OK" ]
then
echo "Everything is fine"
else
echo "Not OK"
fi
Como el resultado de este script es "OK", también debería escribir "Todo está bien", ya que el puerto serie envía "OK". Pero sólo recibo el mensaje "No está bien", lo cual me resulta extraño. El primer eco dice "OK", pero si quiero comparar la cadena ya no es "OK".
¿Alguien puede ayudarme (soy un novato en Linux)?
Respuesta1
El comando sudo cat /dev/ttyUSB0
no devuelve ningún resultado. Usar stty
en su lugar
sudo stty -F /dev/ttyUSB0
Respuesta2
Probablemente haya una pestaña o un espacio en blanco en el archivo var
. Canalice cat
el resultado para tr
eliminarlos.
var=$(sudo cat /dev/ttyUSB0| tr -d " \t\n")
Respuesta3
Funciona si eliminas los espacios en blanco con los siguientes comandos:
var="${var#"${var%%[![:space:]]*}"}"
var="${var%"${var##*[![:space:]]}"}"
(https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-bash-variable) Gracias por todas las respuestas.