Я уже публиковал подобный вопрос, но все еще не мог выполнить свою работу, так что это вторая попытка, где я хотел бы более четко изложить свой камень преткновения.
Итак, в основном я нахожусь в оболочке adb телефона Android, общаюсь с модемом GPRS, отправляя AT-команды. Я могу сделать это, перенаправив команду на файл устройства, представляющий модем; и я могу прочитать ответ, используя утилиту cat, работающую в фоновом режиме (запущенную ранее). Я реализовал это в сценарии, который может отправить одну AT-команду и прочитать ответ. Например, вот скрипт для отправки на+cops? чтобы получить имя оператора мобильного телефона:
#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
Теперь вот две проблемы, которые я не могу решить:
- Мне все еще нужно вручную нажать кнопку ENTER, чтобы вернуть приглашение оболочки adb «#». Есть ли способ программно вернуться к подсказке «#»? Опять же, я в оболочке adb.
- Отображаемый ответ не может быть захвачен ни в переменной, ни в файле (например, (#./sendATCommand > output.txt) Файл Output.txt будет пуст. Я пробовал различные перенаправления, но все равно не заставить его работать .
Может ли кто-нибудь помочь мне решить эти две проблемы (если это возможно)? В конечном итоге я хочу, чтобы этот небольшой скрипт вызывался из «супер» скрипта (например, Perl или Powershell), работающего на ПК, к которому подключено мое Android-устройство, но это невозможно сделать, пока эти две проблемы не будут решены. Заранее большое спасибо!
\\r
? не только\r
, ИЛИ попробуйте\n
ИЛИ чаще, когда задействован\r
,\r\n
. Как вы думаете, почему вы получаете сообщение «недопустимая длина»? Не андроид, так что это все, что я могу предложить. Удачи. - person shellter   schedule 15.02.2012\r
, stackoverflow.com/a/21503919/23118. Не используйте\n
. - person hlovdal   schedule 22.02.2014echo 'at+cops?' | tr '\012' '\015' > /dev/pts/7
, где команда tr переводит\n
в\r
. Но, как вы заметили, поток ввода-вывода, вероятно, все еще будет хрупким. - person hlovdal   schedule 22.02.2014