我有一个Arduino Sketch,它将一些二进制数据写入串口。 类似的东西:
0110101010010
01010100011011110
10101000110
这些代码可以有不同的长度。 现在我需要一个bash脚本,它逐行读取串行输出,显示读取代码和微调器,并将代码附加到文本文件中。
这就是我提出的:(脚本的相关部分)
spinner()
{
local pid=$1
local delay=0.2
local spinstr='|/-\'
while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
local temp=${spinstr#?}
printf " [%c] " "$spinstr"
local spinstr=$temp${spinstr%"$temp"}
sleep $delay
printf "\b\b\b\b\b\b"
done
printf " \b\b\b\b"
}
function monitor {
trap ctrl_c INT
echo "Starting Monitor Mode"
echo "Receiving..."
stty -f $1 raw speed 9600
( cat $1 ) & spinner $!
}
function ctrl_c() {
echo -e "\nAborting. Collected keys were saved."
#save keys
exit 0
}
显示微调器的方法取自:http://fitnr.com/showing-a-bash-spinner.html。
实际上我试图用这两个命令读取串行输出:
stty -f $1 raw speed 9600
( cat $1 >> $keyfile) & spinner $!
不幸的是,这不起作用。以下是我发送的代码的示例屏幕截图:
这是我得到的输出:
你能帮我纠正我的代码吗?可以完成所需的行为(标记为粗体)?
编辑:没关系我在这个帮助下自己开始工作:
( tee -a < $1 $keyfile ) & spinner $!