我正在尝试编写一个Bash脚本,以便从连接到我的嵌入式设备的串行设备接收已知数量为Bytes的文件(我们正在谈论的是1MB)。然后,必须将这些字节保存到文件中以供以后的操作使用。
我尝试过类似于(stty raw; cat > blob.bin) < /dev/ttyS0
的东西,但是我希望cat
在达到我所期望的字节数时停止,因为脚本在文件完成后需要在其他函数上取得进展。
数据流将从外部设备启动,并将持续运行,直到外部设备的二进制文件结束为止。
在Linux上工作,不幸的是我不能使用Python或其他编程语言。
谢谢!
发布于 2020-12-14 11:51:18
由于@meuh的评论,我能够使用dd
编写一个工作脚本
dd ibs=1 count=$PLBYTE iflag=count_bytes if=/dev/ttyS0 of=/.../dump.bin
使用dd
操作数计数和时差,(计数接收到的字节和读取1字节/块)和$PLBYTE
预期的字节数。
该脚本现在按照预期工作。
确保在非规范模式(-icanon)中设置stty,否则超过4096字节的数据将被截断,而dd
将不会收到预期的字节数。
https://stackoverflow.com/questions/65266213
复制