Сравнение строк в Bash

Сравнение строк в Bash

Вот мой код (пока):

var=$(sudo cat /dev/ttyUSB0)
echo "$var"

if [ "$var" == "OK" ]
    then
        echo "Everything is fine"
    else
        echo "Not OK"
fi

Так как вывод этого скрипта "OK", он также должен написать "Everything is fine", так как последовательный порт отправляет "OK". Но я получаю только сообщение "Not OK", что для меня странно. Первое эхо говорит "OK", но если я хочу сравнить строку, то это уже не "OK".

Может ли кто-нибудь мне помочь (я новичок в Linux)

решение1

Команда sudo cat /dev/ttyUSB0не возвращает никаких выходных данных. sttyВместо этого используйте

sudo stty -F /dev/ttyUSB0

решение2

Вероятно, в результате есть табуляция или пробел var. Перейдите по конвейеру , чтобы удалить их.cattr

  var=$(sudo cat /dev/ttyUSB0| tr -d " \t\n")

решение3

Это сработает, если удалить пробелы с помощью следующих команд:

var="${var#"${var%%[![:space:]]*}"}"    
var="${var%"${var##*[![:space:]]}"}"

(https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-bash-variable) Спасибо за все ответы

Связанный контент