【脚本】linux shell脚本交互问题yes/no问题,过Git和ssh验证
2022年06月10日 10:22:18 作者:Jiaozn 分类:Shell 评论(1)#Git和ssh验证方面可以使用下面的方法
yum -y install expect
cat > expect.sh <<EOF
#!/usr/bin/expect -f
set timeout 30
spawn git pull origin maste
expect {
"*yes/no"
{ send "yes\r"; exp_continue}
}
EOF
chmod +x expect.sh
./expect.sh
#其他方法:
方法一
echo yes| sh a.sh
方法二
yes yes| sh a.sh
方法三
sh a.sh<<ESXU
yes
yes
ESXU
扩展
yum -y install expect
vim expect.sh
#!/usr/bin/expect
#设置超时时间
set timeout 60
#参数传入
set hostname [lindex $agv 0] #追加参数0,加载第1位参赋予变量hostname
set password [lindex $agv 1] #追加参数1,加载第2位参赋予变量password
#追踪命令
spawn ssh root@$hostname #spawn后面通常跟一个命令,表示开启了一个会话,启动进程,并跟踪后续交互信息
expect { #捕捉交互信息
"(yes/no)" #捕捉到字符(yes/no)
{send "yes\r"; exp_continue} #发送交互信息"yes\r";exp_continue表示允许expect继续向下执行命令
"*password"
{send "$password\r"}
}
interact #把控制权交给用户控制台
除非注明,发表在“Jiaozn的博客”的文章『【脚本】linux shell脚本交互问题yes/no问题,过Git和ssh验证』版权归Jiaozn所有。
转载请注明出处为“本文转载于『Jiaozn的博客』原地址https://jiaozn.com/reed/768.html”
评论
发表评论