LINUX.ORG.RU

Передать сочетание CTRL+C из shell-скрипта


0

0

Есть некое устройство, на котором поднят telnet. Необходимо автоматизировать выполнение пары команд.

Проблема в том, что после ввода логина и пароля нужно нажать ctrl+c, чтобы получить консоль - выводится соответствующий промпт.

Хотелось-бы сделать максимально простым способом:

(sleep 5; echo "username" ; sleep 2; echo "userpass" ; sleep 2; echo "command1" ; sleep 2; echo "command2" ; sleep 1; echo "exit" )| telnet 172.16.100.100

Но как передать сочетание ctrl+c? echo "^C" не работает, \"^C\" - тоже.

Также не получается с expect и empty.

Подскажите, пожалуйста, что можно сделать?

★★★★

kill -s SIGINT `pidof telnet`

mv ★★★★★
()

И ваще, используй chat

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

> kill -s INT <PID>

неправдоподобно.

Наверняка телнет переводит терминал в режим, когда ctrl-C не генерирует сигнал.

dilmah ★★★★★
()

Спасибо всем. Сейчас попробую.

Пока искомое нашел только в man chat.

^C Substitute the sequence with the control character represented by C. For example, the character DC1 (17) is shown as ^Q. (some characters are not valid in expect.)

С printf не получается.

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

> Пока искомое нашел только в man chat.

chat как раз для диалогов и разрабатывался

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