我正在尝试从串行端口逐行读取。下面的代码有效,但我一直收到一个我不明白的错误。任何线索?
代码
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
答案 0 :(得分:1)
if [ "$(line)"=='OFF' ] ;
$(...)
执行括号内容并返回stdout。如果您没有名为line
的命令,则会看到未找到&#34;命令&#34;错误消息,$()
将返回一个空字符串。[...]
根据给定的参数数量执行不同的操作。由于您只提供一个单词,[
命令仅检查字符串是否为空。在这种情况下,[
将看到""=='OFF'
非空,因此将始终执行成功块。