2013-09-16 1 views
1

Я пишу скрипт для изменения пользователя от root до poletst (другой пользователь). Когда я меняю сервер пользователя, задайте мне среди трех областей, из которых я должен выбрать, нажав 1,2 или 3Сценарий оболочки, чтобы изменить пользователя, указать некоторый ввод, но затем взаимодействовать с оболочкой

Я пишу сценарий оболочки для автоматизации некоторого шага, и есть шаг, который включает изменение пользователя и выбор области 1 по умолчанию.

su - poletst 
1 

Не работает. Он принимает меня к пользователю, но не меняет область. Как это сделать?

+0

Как это выглядит? – mnagel

+0

подскажите мне три варианта: 1) Испытание 2) Испытание 1 3) Испытание 2 , которое может быть выбрано путем приговора 1 2 или 3 – user2644549

ответ

2

Вы можете сделать это:

expect -c 'spawn su - poletst; send "1\r"; interact' 

Или, если это не сработает, попробуйте следующее:

expect -c 'spawn su - poletst; expect "prompt"; send "1\r"; interact' 

Просто замените prompt с одной из строк в последней строке сообщения, показывается вам, когда вас спрашивают об этом районе.

Также Вы можете поместить его в качестве сценария

#!/usr/bin/env expect -f 
spawn su - poletst 
expect "prompt" 
send "1\r" 
interact 

сохранить его в файл, как su-poletst.exp и просто запустить expect -f su-poletst.exp.

Смежные вопросы