Доброго времени суток! Подскажите, возможно ли сделать так:есть программа, при запуске появляется меню, ждет пока введешь номер команды, потом нажмешь ввод и соответственно потом получаем вывод, и ожидание след. команды.
su-2.05b# apctest
2005-04-21 01:34:06 apctest 3.10.11 (26 January 2004) freebsd
Checking configuration ...
Attached to driver: apcsmart
sharenet.type = DISABLE
cable.type = CUSTOM_SMARTYou are using a SMART cable type, so I'm entering SMART test mode
mode.type = SMART
Setting up serial port ...
Creating serial port lock file ...
Hello, this is the apcupsd Cable Test program.
This part of apctest is for testing Smart UPSes.
Please select the function you want to perform.1) Query the UPS for all known values
2) Perform a Battery Runtime Calibration
3) Abort Battery Calibration
4) Monitor Battery Calibration progress
5) Program EEPROM
6) Enter TTY mode communicating with UPS
7) QuitSelect function number:
Так вот нужно написать скриптик на bash, который бы запускал программу, пердавал ей сначала 1, потом писал вывод в файл, потом передавал 7 и все.. ну и потом наверное добавить в конецps aux | grep apctest
if [ $? -eq 0 ]; then
exit 0
else
kill -9 `ps aux | grep apctest | awk '{print $2}'`
fiэто так сказать чтобы точно прибить софтину, если повиснет.
Так возможно ли это реализовать?
Спасибо за внимание!
>Доброго времени суток! Подскажите, возможно ли сделать так:
>
>есть программа, при запуске появляется меню, ждет пока введешь номер команды, потом
>нажмешь ввод и соответственно потом получаем вывод, и ожидание след. команды.
>
>
>su-2.05b# apctest
>
>
>2005-04-21 01:34:06 apctest 3.10.11 (26 January 2004) freebsd
>Checking configuration ...
>Attached to driver: apcsmart
>sharenet.type = DISABLE
>cable.type = CUSTOM_SMART
>
>You are using a SMART cable type, so I'm entering SMART test
>mode
>mode.type = SMART
>Setting up serial port ...
>Creating serial port lock file ...
>Hello, this is the apcupsd Cable Test program.
>This part of apctest is for testing Smart UPSes.
>Please select the function you want to perform.
>
>1) Query the UPS for all known values
>2) Perform a Battery Runtime Calibration
>3) Abort Battery Calibration
>4) Monitor Battery Calibration progress
>5) Program EEPROM
>6) Enter TTY mode communicating with UPS
>7) Quit
>
>Select function number:
>
>
>Так вот нужно написать скриптик на bash, который бы запускал программу, пердавал
>ей сначала 1, потом писал вывод в файл, потом передавал 7
>и все.. ну и потом наверное добавить в конец
>
>ps aux | grep apctest
>if [ $? -eq 0 ]; then
>exit 0
>else
>kill -9 `ps aux | grep apctest | awk '{print $2}'`
>fi
>
>это так сказать чтобы точно прибить софтину, если повиснет.
>
>Так возможно ли это реализовать?
>
>Спасибо за внимание!
берется пакет expect (как раз для подобных случаев),
в нём есть скрипт autoexpect, под этим скриптом запускаешь subj,
проходишь весь сценарий один раз руками...в итоге получаешь скрипт,
который сможет это повторить в автоматическом режиме
>Доброго времени суток! Подскажите, возможно ли сделать так:
>
>есть программа, при запуске появляется меню, ждет пока введешь номер команды, потом
>нажмешь ввод и соответственно потом получаем вывод, и ожидание след. команды.
>
>
>su-2.05b# apctest
>
>
>2005-04-21 01:34:06 apctest 3.10.11 (26 January 2004) freebsd
>Checking configuration ...
>Attached to driver: apcsmart
>sharenet.type = DISABLE
>cable.type = CUSTOM_SMART
>
>You are using a SMART cable type, so I'm entering SMART test
>mode
>mode.type = SMART
>Setting up serial port ...
>Creating serial port lock file ...
>Hello, this is the apcupsd Cable Test program.
>This part of apctest is for testing Smart UPSes.
>Please select the function you want to perform.
>
>1) Query the UPS for all known values
>2) Perform a Battery Runtime Calibration
>3) Abort Battery Calibration
>4) Monitor Battery Calibration progress
>5) Program EEPROM
>6) Enter TTY mode communicating with UPS
>7) Quit
>
>Select function number:
>
>
>Так вот нужно написать скриптик на bash, который бы запускал программу, пердавал
>ей сначала 1, потом писал вывод в файл, потом передавал 7
>и все.. ну и потом наверное добавить в конец
>
>ps aux | grep apctest
>if [ $? -eq 0 ]; then
>exit 0
>else
>kill -9 `ps aux | grep apctest | awk '{print $2}'`
>fi
>
>это так сказать чтобы точно прибить софтину, если повиснет.
>
>Так возможно ли это реализовать?
>
>Спасибо за внимание!
Ну послать нажате ИМХО это
(echo 1;
echo 7;)| apctest>myfile1.txtну а с выводом можна манипуляции творить
Всем спасибо! autoexpect решил мою задачу!