Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как программно реализовать нажатие кнопки Enter. / 25 сообщений из 26, страница 1 из 2
30.05.2008, 11:23:02
    #35345249
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Всем привет.

Собственно вопрос такой.
Есть некая задача, которую необходимо автоматизировать.
По ходу ее выполнения один из процессов требуют нажатия кнопки Enter.
Как мне программно реализовать нажатие этой кнопки Enter?
...
Рейтинг: 0 / 0
30.05.2008, 11:46:13
    #35345335
Умаксуман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
гениально! а в какой системе? какая среда разработки?
...
Рейтинг: 0 / 0
30.05.2008, 11:51:34
    #35345358
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Сорри, забыл.
Ситема HP-UX, среда разработки - пусть будет Си.
...
Рейтинг: 0 / 0
30.05.2008, 12:05:53
    #35345416
Умаксуман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
DBZeusСорри, забыл.
Ситема HP-UX, среда разработки - пусть будет Си.

а поподробней?
Си - это язык, а не среда разработки. Это иксовое приложение или курсес?
...
Рейтинг: 0 / 0
30.05.2008, 12:21:57
    #35345474
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Это скрипт, который будет работать в bash или ksh.
...
Рейтинг: 0 / 0
30.05.2008, 12:26:47
    #35345493
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
...
Рейтинг: 0 / 0
30.05.2008, 12:28:16
    #35345499
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
man yes
...
Рейтинг: 0 / 0
30.05.2008, 13:22:30
    #35345692
Умаксуман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
DBZeusЭто скрипт, который будет работать в bash или ksh.

Си - это скриптовый язык?
...
Рейтинг: 0 / 0
30.05.2008, 14:03:54
    #35345803
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Умаксуман DBZeusЭто скрипт, который будет работать в bash или ksh.

Си - это скриптовый язык?

Си - уже отменяется.
Буду копать в сторону expect. Спасибо информиксовому Гуру.
...
Рейтинг: 0 / 0
02.06.2008, 14:02:06
    #35348996
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Написал скрипт с использованием утилиты expect.
Из командной строки отрабатывает нормально.
Но мне надо запустить его из файла.
Как написано в доке, в начало файла вставил строку
Код: plaintext
#!/usr/local/bin/expect
, но следующая команда ызфцт не выполняется, пишет spawn: command not found.
...
Рейтинг: 0 / 0
02.06.2008, 14:18:15
    #35349049
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
man expect
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
USAGE
      Expect reads cmdfile for a list of commands to execute.  Expect may
      also be invoked implicitly on systems which support the #! notation by
      marking the script executable, and making the first line in your
      script:

          #!/usr/local/bin/expect -f


-----------------------------------------------------------------------------------------------------------------------------------------
А вазелин еще надо заслужить.
...
Рейтинг: 0 / 0
02.06.2008, 14:37:31
    #35349103
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
хотя и без -f вроде работает.

# which expect
/usr/bin/expect

ставил expect в local как и задумано и сделал симлинк
# ll /usr/bin/expect
lrwxr-xr-x 1 root sys 21 Nov 12 2007 /usr/bin/expect -> /usr/local/bin/expect


-----------------------------------------------------------------------------------------------------------------------------------------
А вазелин еще надо заслужить.
...
Рейтинг: 0 / 0
02.06.2008, 15:23:43
    #35349219
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Есть такой вот скрипт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
/usr/local/bin/expect --
spawn /home/informix/un_onload
expect "Please mount tape and press Return to continue ..."
send "\r"
expect "Please label this as tape number 1 in the tape sequence.
Please mount tape and press Return to continue ..."
exec /home/informix/bach1
send "\r"
expect "Please label this as tape number 2 in the tape sequence.
Please mount tape and press Return to continue ..."
exec /home/informix/bach2
exit  0 
who am i
Он делает выгрузку базы из Informix с помощью утилиты onunload. Выгрузка ведётся на файловую систему в файлы размером по 2 Гб (старая версия IDS).
Если этот скрипт запустить из командной строки, то он отработает на ура. Я получаю два файла: один размером 2ГБ, второй меньшим размером.
Мне необходимо запускать этот скрипт из файла.
Создаю файл со следующим содержанием
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 #!/usr/local/bin/expect -f
spawn /home/informix/un_onload
expect "Please mount tape and press Return to continue ..."
send "\r"
expect "Please label this as tape number 1 in the tape sequence.
Please mount tape and press Return to continue ..."
exec /home/informix/bach1
send "\r"
expect "Please label this as tape number 2 in the tape sequence.
Please mount tape and press Return to continue ..."
exec /home/informix/bach2
exit  0 
who am i
Делаю ему chmod +x
Запускаю, и получаю следующую хрень

bash-2.05$ . qqq
bash: spawn: command not found
couldn't read file "Please mount tape and press Return to continue ...": no such file or directory
bash: send: command not found
couldn't read file "Please label this as tape number 1 in the tape sequence.
Please mount tape and press Return to continue ...": no such file or directory

Что не так?
...
Рейтинг: 0 / 0
02.06.2008, 15:31:38
    #35349257
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
DBZeus . qqq
Что не так?
./qqq
...
Рейтинг: 0 / 0
02.06.2008, 15:45:08
    #35349309
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Запускаю ./qqq.
Таже хрень
bash: spawn: command not found
couldn't read file "Please mount tape and press Return to continue ...": no such file or directory
bash: send: command not found
couldn't read file "Please label this as tape number 1 in the tape sequence.
Please mount tape and press Return to continue ...": no such file or directory
...
Рейтинг: 0 / 0
02.06.2008, 16:37:01
    #35349523
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
DBZeusЗапускаю ./qqq.
Таже хрень
bash: spawn: command not found
couldn't read file "Please mount tape and press Return to continue ...": no such file or directory
bash: send: command not found
couldn't read file "Please label this as tape number 1 in the tape sequence.
Please mount tape and press Return to continue ...": no such file or directory

баш ругается

А чего говорит
# ll /usr/local/bin/expect
...
Рейтинг: 0 / 0
02.06.2008, 16:40:30
    #35349538
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Журавлев Денис DBZeusЗапускаю ./qqq.
Таже хрень
bash: spawn: command not found
couldn't read file "Please mount tape and press Return to continue ...": no such file or directory
bash: send: command not found
couldn't read file "Please label this as tape number 1 in the tape sequence.
Please mount tape and press Return to continue ...": no such file or directory

баш ругается

А чего говорит
# ll /usr/local/bin/expect

Дело в том, что сейчас я работаю с Солярой. :) К HP-UX доступа пока нет.

Expect из баша запускается.
...
Рейтинг: 0 / 0
02.06.2008, 16:43:11
    #35349551
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
DBZeus

Expect из баша запускается.И что?
покажите
# which expect
...
Рейтинг: 0 / 0
02.06.2008, 16:48:52
    #35349570
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
bash-2.05$ which expect
/usr/bin/expect
bash-2.05$
...
Рейтинг: 0 / 0
02.06.2008, 17:01:50
    #35349618
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
ну так поменяйте

#!/usr/local/bin/expect

на

#!/usr/bin/expect -f
...
Рейтинг: 0 / 0
02.06.2008, 17:09:27
    #35349644
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
Журавлев Денисну так поменяйте

#!/usr/local/bin/expect

на

#!/usr/bin/expect -f
Все тоже самое... :(

Заметил такую вещь..
Если в скрипте строку
Код: plaintext
spawn /home/informix/un_onload
заменить
на
Код: plaintext
exec /home/informix/un_onload
, то скрипт запускается, но висит на
Please mount tape and press Return to continue ... . Я так понимаю не отрабатывает send "\r" .

Я уже всю башку сломал.
...
Рейтинг: 0 / 0
02.06.2008, 17:43:16
    #35349737
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
он же вам говорит, spawn нету

ищите эту чудопрограмму.
...
Рейтинг: 0 / 0
02.06.2008, 17:48:44
    #35349748
DBZeus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
hellон же вам говорит, spawn нету

ищите эту чудопрограмму.
Дык из командной строки все работает.
...
Рейтинг: 0 / 0
02.06.2008, 18:25:47
    #35349853
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
DBZeus
#!/usr/bin/expect -f
Все тоже самое... :(

покажите
ls -l /usr/bin/expect



DBZeusЗаметил такую вещь..
Если в скрипте строку
Код: plaintext
spawn /home/informix/un_onload
заменить
на
Код: plaintext
exec /home/informix/un_onload
, то скрипт запускается, но висит на

дык в том и дело что у вас скрипт bash-м исполняется а не expect-м
забейте

вместо ./qqq
вызывайте прямо expect -f qqq


[quot DBZeus]
Я уже всю башку сломал.могу только посоветовать http://gazette.linux.ru.net/rus/articles/index-abs-guide.html
...
Рейтинг: 0 / 0
02.06.2008, 18:27:54
    #35349862
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно реализовать нажатие кнопки Enter.
DBZeusВсе тоже самое... :(покажите
ls -l /usr/bin/expect


DBZeusЗаметил такую вещь..
Если в скрипте строку
Код: plaintext
spawn /home/informix/un_onload
заменить
на
Код: plaintext
exec /home/informix/un_onload
, то скрипт запускается, но висит на дык в том и дело что у вас скрипт bash-м исполняется а не expect-м
забейте
вместо ./qqq
вызывайте прямо expect -f qqq

DBZeusЯ уже всю башку сломал.могу только посоветовать http://gazette.linux.ru.net/rus/articles/index-abs-guide.html
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как программно реализовать нажатие кнопки Enter. / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]