powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как программно реализовать нажатие кнопки Enter.
26 сообщений из 26, показаны все 2 страниц
Как программно реализовать нажатие кнопки Enter.
    #35345249
DBZeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

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

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

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

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

Си - уже отменяется.
Буду копать в сторону expect. Спасибо информиксовому Гуру.
...
Рейтинг: 0 / 0
Как программно реализовать нажатие кнопки Enter.
    #35348996
DBZeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал скрипт с использованием утилиты expect.
Из командной строки отрабатывает нормально.
Но мне надо запустить его из файла.
Как написано в доке, в начало файла вставил строку
Код: plaintext
#!/usr/local/bin/expect
, но следующая команда ызфцт не выполняется, пишет spawn: command not found.
...
Рейтинг: 0 / 0
Как программно реализовать нажатие кнопки Enter.
    #35349049
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как программно реализовать нажатие кнопки Enter.
    #35349103
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя и без -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
Как программно реализовать нажатие кнопки Enter.
    #35349219
DBZeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой вот скрипт
Код: 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
Как программно реализовать нажатие кнопки Enter.
    #35349257
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBZeus . qqq
Что не так?
./qqq
...
Рейтинг: 0 / 0
Как программно реализовать нажатие кнопки Enter.
    #35349309
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
...
Рейтинг: 0 / 0
Как программно реализовать нажатие кнопки Enter.
    #35349523
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как программно реализовать нажатие кнопки Enter.
    #35349538
DBZeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис 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
Как программно реализовать нажатие кнопки Enter.
    #35349551
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBZeus

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

#!/usr/local/bin/expect

на

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

#!/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
Как программно реализовать нажатие кнопки Enter.
    #35349737
Фотография hell
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он же вам говорит, spawn нету

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

ищите эту чудопрограмму.
Дык из командной строки все работает.
...
Рейтинг: 0 / 0
Как программно реализовать нажатие кнопки Enter.
    #35349853
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как программно реализовать нажатие кнопки Enter.
    #35349862
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как программно реализовать нажатие кнопки Enter.
    #35350373
DBZeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис
вместо ./qqq
вызывайте прямо expect -f qqq
В рот мне ноги!!! Заработало!
Денис, огромное спасибо.
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Как программно реализовать нажатие кнопки Enter.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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