当前位置: 首页 >> Shell >> 【脚本】linux shell脚本交互问题yes/no问题,过Git和ssh验证 >> 正文

【脚本】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

评论

发表评论   

昵称*

E-mail*

网站