代码之家  ›  专栏  ›  技术社区  ›  David

bash:从后台进程接收消息

  •  1
  • David  · 技术社区  · 6 年前

    我通过发送数据 cansend 到vcan0,同时我正在收听通过以下方式发送给vcan0的消息 candump vcan0 .

    出于某种原因,当我将数据发送到 vcan0 通过脚本,但当我通过终端发送数据时,脚本以某种方式接收数据。

    cansend vcan0 004#0152FEE400000000 # sending data to vcan0
    while true;
    do
      msg_candump=$(candump vcan0) # read vcan0
      if [[ ${#msg_candump} > 1 ]]; then #received msg
        echo $msg_candump
      fi
    done
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   David    6 年前

    while true;
    do
      cansend vcan0 '004#0152FEE400000000'
      sleep 1
      msg_candump="$(candump vcan0 -n 1)" # read vcan0
      if [[ ${#msg_candump} > 1 ]]; then #received msg
        echo $msg_candump
        msg_candump=${msg_candump// /} # leerzeichen entfernen
        msg_candump=${msg_candump:19:8} # substring holen
        msg_candump=${msg_candump,,} #lowercase
        if [[ $msg_candump != `git log -1 --format="%h"`0 ]]; then
          echo "git pull"
          #git pull
          break
        fi
      fi
      sleep 0.025
    done