在 Bash 中比較字串

在 Bash 中比較字串

這是我的程式碼(到目前為止):

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

可能有製表符或空格varcat透過管道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)感謝您的所有回答

相關內容