Я новичок в терминале Ubuntu. У меня есть команда для подключения к серверу VPN. на первом шаге я должен набрать sudo vpn_command и поэтому я должен ввести пароль root, затем на следующем шаге я должен ввести «yes» и vpn username и vpn password соответственно.
Я хочу сделать все эти действия в одной команде. ты можешь мне помочь?
Программа, которая вам нужна, называется ожидаемо. Итак, сначала sudo apt-get install expect
. Ожидайте, как следует из его названия, ожидает строки на терминале и отправляет обратно другие строки. Это идеальный инструмент, когда программа запрашивает ответ. Это довольно сложная программа, но здесь ее можно использовать самым простым способом:
см., Например, вопрос 307067 Askubuntu или вопрос 38458053 о переполнении стека. Ваша поисковая система найдет много примеров, как только вы узнаете, что вам нужно запросить «примеры паролей».
sudo не всегда будет спрашивать ваш пароль. если вы повторно запустите команду sudo в том же терминале в течение 5 минут или около того, во второй раз она не будет запрашивать пароль. В таких ситуациях вы можете использовать ожидаемое время ожидания.
Вы могли бы написать скрипт myexpectedcript с таким содержанием:
#!/usr/bin/expect -d
set timeout 5
set pw {YOUR ubuntu GNU/linux P4ßw0rd}
set vpnuser {yourvpnusername}
set vpnpass {vpn-PAs$w0rd}
spawn sudo -p sudoisaskingforyourpassword vpncommand -foo -b ar etc...
expect "sudoisaskingforyourpassword" { send "$pw\n" }
expect {Do you really want to do that} { send "Yes\n" }
expect {vpn user prompt} { send "$vpnuser\n" }
expect {vpn password prompt} { send "$vpnpass\n" }
interact
сделать его исполняемым с помощью chmod 700 myexpectscript
, а затем запустить ./myexpectscript
. Измените -d
на -f
, чтобы избавиться от выходного сигнала отладки. Вы должны настроить время ожидания, команду и различные запросы и пароли.
Все это, конечно, полностью не проверено.
И последнее, но не менее важное: ожидаемый использует язык TCL . TCL - очень изящный и дружелюбный язык, он просто придирчив к тому, кто его друзья. Если вы получаете ошибки, будьте готовы долго читать документы.