试图获取在后台运行的命令的输出

时间:2015-06-11 16:50:27

标签: linux bash

如果我在控制台中运行命令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

0 个答案:

没有答案