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

Вот мой код (до сих пор):

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

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

Поскольку вывод этого сценария в порядке, он должен также записать, что "Все прекрасно", поскольку последовательный порт отправляет "хорошо". Но я только получаю "Не хорошо" сообщение, которое является странным для меня. Первое эхо говорит "хорошо", но если я хочу сравнить строку не "хорошо" больше.

Может любой помогать мне (я - новичок Linux),

2
задан 14 July 2015 в 15:51

3 ответа

Вероятно, существует вкладка или пробел в var. Канал cat результат к tr для удаления их.

  var=$(sudo cat /dev/ttyUSB0| tr -d " \t\n")
0
ответ дан 2 December 2019 в 05:03

Это работает при удалении пробелов со следующими командами:

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

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

0
ответ дан 2 December 2019 в 05:03

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

sudo stty -F /dev/ttyUSB0
1
ответ дан 2 December 2019 в 05:03

Другие вопросы по тегам:

Похожие вопросы: