Вот мой код (до сих пор):
var=$(sudo cat /dev/ttyUSB0)
echo "$var"
if [ "$var" == "OK" ]
then
echo "Everything is fine"
else
echo "Not OK"
fi
Поскольку вывод этого сценария в порядке, он должен также записать, что "Все прекрасно", поскольку последовательный порт отправляет "хорошо". Но я только получаю "Не хорошо" сообщение, которое является странным для меня. Первое эхо говорит "хорошо", но если я хочу сравнить строку не "хорошо" больше.
Может любой помогать мне (я - новичок Linux),
Вероятно, существует вкладка или пробел в var
. Канал cat
результат к tr
для удаления их.
var=$(sudo cat /dev/ttyUSB0| tr -d " \t\n")
Это работает при удалении пробелов со следующими командами:
var="${var#"${var%%[![:space:]]*}"}"
var="${var%"${var##*[![:space:]]}"}"
( https://stackoverflow.com/questions/369758/how-to-trim-whitespace-from-bash-variable) спасибо за все ответы
Команда sudo cat /dev/ttyUSB0
не возвращает вывода. Используйте stty
вместо этого
sudo stty -F /dev/ttyUSB0