让我们分析一下您提供给 shell 的两个命令:
cat /dev/smd7 &
echo "some_data" > /dev/smd7
cat /dev/smd7 &
:听设备/dev/smd7
:从现在开始,来自该设备的所有数据都将被重定向到标准输出(您正在写入的外壳)。在后台执行 ( &
) 以便能够发送更多命令
echo "some_data" > /dev/smd7
:发送some_data
到设备/dev/smd7
- 与设备的连接已打开
- 数据已发送
- 连接关闭,控制权回到外壳
当你寄出echo "AT+CMGS=24;\r" > /dev/smd7
AT+CMGS=24;\r
被发送到设备
- 连接已关闭
- ... 同时设备发回
>
提示字符,告诉您它正在等待 PDU 消息
- ...但外壳有控制权。
>
提示只是shell上的一个打印,所以任何发送的数据都将直接发送到shell!
- 由于发送的数据不是shell命令,所以
not found
显示错误
总之,为了正确发送PDU消息到设备,只需通过echo
命令继续发送:
echo "07...985C369F01" > /dev/smd7
注意:确保使用 CTRL+Z 字符 (ASCII 0x1A
) 终止序列。