今天小编给大家分享一下shell脚本自动输入用户名和密码如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
场景:
shell脚本中,scp和ssh连接时,自动输入用户名和密码。
解决方案:
例:
#!/bin/bash
remoteIp=IP
remoteUser=用户名
remotePw=密码
function download(){
remoteFile=$1
localDir=$2
expect << EOF
set timeout 1200;
spawn scp -r -p $remoteUser@$remoteIp:"$remoteFile" "$localDir"
expect{
"*yes/no*" {send "yes
";exp_continue}
"*Permission denied*" {exit 1}
"*password*" {send "$remotePw
";exp_continue}
"*Killed by signal 1" {exit 1}
}
EOF
}
fucntion remoteCmd(){
cmd=$1
expect << EOF
set timeout 1200;
spawn ssh $remoteUser@$remoteIp
expect{
"*yes/no*" {send "yes
";exp_continue}
"*Permission denied*" {exit 1}
"*password*" {send "$remotePw
";exp_continue}
"*$ " {send "
"}
}
expect "*$ " {send "$cmd
"}
expect "*$ " {send "exit
"}
EOF
}
remoteCmd "ls -l"
以上就是shell脚本自动输入用户名和密码如何实现的详细内容,更多关于shell脚本自动输入用户名和密码如何实现的资料请关注九品源码其它相关文章!