Я использую псевдоним Bash, который позволяет мне сократить команду SSH, чтобы я мог войти в мои маршрутизаторы. Довольно тривиальная, но экономия времени! Теперь я хотел бы сделать это еще дальше и полностью автоматизировать регистрацию маршрутизаторов.Expect in Alias
Например, в моем ~/.bashrc
файле У меня есть следующая запись:
sshFuncB()
{
ssh -o StrictHostKeyChecking=no [email protected]$1 - | /usr/bin/expect<<EOF
set timeout 5
set send_human {.1 .3 1 .05 2}
expect {
"password: " { send -h "MYPASSWORD\r" }
"No route to host" { exit 1 }
timeout { exit 1 }
}
set timeout 2
sleep 1
expect {
"N]?" { send "y\r"; exp_continue }
timeout { exit 1 }
}
expect eof
EOF
}
alias z=sshFunc
Однако, когда я типа z myrouterhostname
это не дает желаемых результатов. Я должен найти способ запустить SSH-соединение и ожидать автоматического входа в систему, прежде чем возвращать управление пользователю.
Любые идеи?
Ваш псевдоним 'z' указывает на' sshFunc' не 'sshFuncB'. Надеюсь, это опечатка. Один вопрос. Вы получаете какой-то результат? – Dinesh