这是我的代码(到目前为止):
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
。将cat
结果传输到 以tr
删除它们。
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)感谢大家的回答