
這是我的程式碼(到目前為止):
var=$(sudo cat /dev/ttyUSB0)
echo "$var"
if [ "$var" == "OK" ]
then
echo "Everything is fine"
else
echo "Not OK"
fi
由於該腳本的輸出是“OK”,因此它還應該寫“一切都很好”,因為串行端口發送“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)感謝您的所有回答