如果我在控制台中运行命令cat -v /dev/ttyUSB0 > output &
,然后发送另一个命令echo -e '\xff\x09\x00' > /dev/ttyUSB0
,我会得到输出。如果我运行下面的脚本,我不会得到输出。我该如何解决这个问题?
#!/bin/bash
# Connect to the specified device instead of stdin.
stty -F /dev/$PortName $BaudRate cs8 -cstopb -parenb -icanon min 1 time 1
# Run in background the process that will listen to the output.
cat -v /dev/$PortName > output &
# Turn on/off and receive status of the relays.
case "$1" in
"1:1")
echo -e '\xff\x01\x01' > /dev/$PortName
;;
"1:0")
echo -e '\xff\x01\x00' > /dev/$PortName
;;
"2:1")
echo -e '\xff\x02\x01' > /dev/$PortName
;;
"2:0")
echo -e '\xff\x02\x00' > /dev/$PortName
;;
"3:1")
echo -e '\xff\x03\x01' > /dev/$PortName
;;
"3:0")
echo -e '\xff\x03\x00' > /dev/$PortName
;;
"4:1")
echo -e '\xff\x04\x01' > /dev/$PortName
;;
"4:0")
echo -e '\xff\x04\x00' > /dev/$PortName
;;
"5:1")
echo -e '\xff\x05\x01' > /dev/$PortName
;;
"5:0")
echo -e '\xff\x05\x00' > /dev/$PortName
;;
"6:1")
echo -e '\xff\x06\x01' > /dev/$PortName
;;
"6:0")
echo -e '\xff\x06\x00' > /dev/$PortName
;;
"7:1")
echo -e '\xff\x07\x01' > /dev/$PortName
;;
"7:0")
echo -e '\xff\x07\x00' > /dev/$PortName
;;
"8:1")
echo -e '\xff\x08\x01' > /dev/$PortName
;;
"8:0")
echo -e '\xff\x08\x00' > /dev/$PortName
;;
"status-all")
echo -e '\xff\x09\x00' > /dev/$PortName
;;
*)
echo "Select Case problem."
echo "Usage: $MODULE <param>"
exit 1
esac
# Exit app.
exit