LINUX.ORG.RU
ФорумAdmin

передать параметры на stdin


0

0

где прочитать про то, как передать параметры программе на её STDIN ?

т.е. если руками делать то вот так:

bash$ ./proga
> :open
device opened
> :readLoop
1 2 3 4 5 6 ...

как как это можно сделать шеллскриптом? т.е. чтобы передать :open и :readLoop и сидеть наблюдать stdout?

Спасибо!

☆☆

> :open

">" -- это промпт программы ./proga?
:open -- команда вводимая оператором?

expect -- универсальное средство.

Или по-простому:
(echo ":open"; sleep 1: echo ":readLoop"; sleep 666) | ./prog

sdio ★★★★★
()
Ответ на: комментарий от sdio

> ">" -- это промпт программы ./proga?
> :open -- команда вводимая оператором?


да, точно так.

пойду читать про expect однако.

а это не сработало однако:

bash$ (echo ":open"; sleep 1; echo ":readLoop"; sleep 1;) | ./prog /dev/ttyUSB0
cannot get params
bash$

vilfred ☆☆
() автор топика
Ответ на: комментарий от vilfred

>пойду читать про expect однако

там есть autoexpect
запускаешь autoexpect ./proga
вручную задаешь параметры и в конце получаешь готовый expect скрипт для твоей ситуации. Правишь его, если надо.

sdio ★★★★★
()
Ответ на: комментарий от sdio

уррааа!!! зарработала!!!!

#!./expect -f
spawn proga /dev/ttyUSB0
expect ">"
send ":open\r"
expect ">"
send ":readLoop\r"
interact

expect file.exp

Спасибо огромное!

vilfred ☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.