在bash脚本中读取的问题

时间:2014-08-29 11:13:15

标签: bash while-loop

我正在尝试从串行端口逐行读取。下面的代码有效,但我一直收到一个我不明白的错误。任何线索?

代码

    while read line ; do
    if [ "$(line)"=='OFF' ] ;
      then
         echo "that was actually OFF"
    fi
    done < /dev/ttyACM0

那是错误:

   that was actually OFF 
   ./reading_loop.sh: line 9: line: command not found

1 个答案:

答案 0 :(得分:1)

if [ "$(line)"=='OFF' ] ;
  1. $(...)执行括号内容并返回stdout。如果您没有名为line的命令,则会看到未找到&#34;命令&#34;错误消息,$()将返回一个空字符串。
  2. [...]根据给定的参数数量执行不同的操作。由于您只提供一个单词,[命令仅检查字符串是否为空。在这种情况下,[将看到""=='OFF'非空,因此将始终执行成功块。