Можно ли запускать команды bash через оболочку, запущенную на te lnet? - PullRequest
0 голосов
/ 08 февраля 2020

Итак, у нас есть встроенная Linux плата, работающая Linux.
Мы можем подключиться к этой плате, используя te lnet, и она порождает оболочку и дает к ней доступ.

Теперь я пишу bash скрипт, в котором я хочу запускать команды в этой оболочке и получать ее вывод.

Например, мои команды похожи на приведенные ниже команды над te lnet и смотрят, успешно ли это было или нет.

test -c /dev/null

Когда я запускаю его, как показано ниже, я всегда получаю 1 в качестве состояния выхода

{ test -c /dev/null; sleep 1;} | telnet <board ip addr>

Если возможно, я не хочу использовать ожидаемое,

Любое предложение / указатели?

1 Ответ

1 голос
/ 08 февраля 2020

С помощью S SH можно было бы тривиально и надежно сделать:

ssh yourhost 'test -c /dev/null'

С простой оболочкой на порту TCP вы могли бы несколько надежно, но досадно использовать:

echo 'test -c /dev/null; echo $?' | nc -q 1 yourhost 1234

telnet заведомо чувствителен ко времени и сложен для сценария, поэтому, так как вы не хотите делать это надежно с expect, вы можете попытаться сделать это:

{ sleep 1; echo 'test -c /dev/null; echo $?'; sleep 1; } | telnet somehost
...