我已经发布了类似的问题,但仍然无法完成我的工作,所以这是第二次尝试,其中 我想更清楚地说明我的绊脚石。
所以基本上我在Android手机的adb shell中,通过发送AT命令与GPRS调制解调器通信。 我可以通过将 at 命令重定向到代表调制解调器的设备文件来完成此操作;我可以回读 使用在后台运行的 cat 实用程序进行响应(较早开始)。我在脚本中实现了它 它可以发送单个 AT 命令并读回响应。例如,这是一个脚本 发送至+警察?获取手机所在运营商的名称:
#SendATCommand script
cat /dev/pts/7 &
echo -e at+cops?\\r > /dev/pts/7
输出如下所示:
# ./sendATCommand
./sendATCommand
#
+COPS: 0,0,"AT&T",6
OK
/dev/pts/7: invalid length
现在有两个问题我无法解决:
任何人都可以帮我解决这两个问题(如果可能的话)吗?最终我希望这个小脚本是 从我的 Android 设备所在的 PC 上运行的“超级”脚本(例如 Perl 或 Powershell)调用 已连接,但在解决这两个问题之前没有办法做到这一点。提前非常感谢!
我建议你尝试我的atinout程序,它应该正是你所要求的:一个从命令行发送AT命令并捕获输出的程序。
在你的情况下,结果应该是这样的
$ echo 'at+cops?' | atinout - /dev/pts/7 -
+COPS: 0,0,"AT&T",6
OK
$
要捕获输出,只需输入文件名而不是最后一个
-
。
我在将输出重定向到文件时遇到了类似的问题。我通过在 echo 命令前面添加 CMD /c 解决了我的问题。 IE。如果我理解正确,您需要告诉系统它需要等到命令完成执行,然后才将输出重定向到文件。我是在DOS下做的。
由于您在 ANDROID 上运行,请尝试在命令前面添加 sh -c 。希望能帮助到你。