现在有一脚本,原理就是在1个机器上远程ssh+key+通行短语的方式登录到linux上进行执行一些命令(比如df -h),然后将这些命令的结果通过scp到本地。 我现在这脚本相当的长,而且很多机器没有执行成功。没有生成结果 代码如下,我只举例登录两个机器的例子,想让朋友们帮我精简一下: [code] #!/usr/local/bin/expect -f #------------------------------------------------------------------------------------------------- set...
RT 例如在shell脚本中直接写入 code: expect{ "*(yes/no)? " {send "yes\r"} "*password:" {send "$passwd\r"} "*Permission denied*" {send_user "Permission denied\n" close set done 0 break } "*Connection refused*" {send_user "Connection refused\n" close set done 0 ...
情况是在一个shell程序中,使用了expect进行telnet到其他设备,然后会执行一条命令。 问题是不知道怎么才能把命令的返回结果保存到shell的变量或者本机的文件中。 code片段: [code] expect -c" spawn telnet x.x.x.x expect "login:" send \"name111\r\" expect "Password:" send \"passwd111\r\" expect "*\>" send \"show info\r\" expect "*\>" send \"exit\r\" expect eof" [/code] 即希望获取show info的返回值。 O(∩_∩)O...
请问如何在shell脚本中使用expect?
我看到都是#!/bin/expect
我想在shell脚本里使用expect,
expect <
安装完TCL,expect后,运行shell脚本,可还是识别不了expect的命令? 我这有个shell脚本,里面含有spawn之类的expect命令,所以装了TCL和expect,可在用sh运行shell脚本时,还是不识别spawn的命令,哪为前辈指点一下,问题出在哪了
在REDHAT下,我的shell脚本中用到了spawn命令,所以我先装了tcl,后又装了expect。 然后我在系统中敲入tcl或者expect都正常有了tcl>,和expect1.1>!我想这应该说明我的tcl和expect的安装应该没问题了吧!!但我一运行我的shell脚本,它就报错!~说spawn找不到!!!! 哪位用过的给我指点一下呀!!!!!!
我用expect写了登陆router的脚本,然后在shell里调用,处理很多router。 但是有些时候,部分router坏了,不能登陆上去。结果程序就卡这了,有没有办法可以在超时了以后就不执行这一句,直接执行下面的? 假设30秒登陆不成功就算超时。
程序一:name.sh #!/bin/bash for name in root1 root2 root3 do ./login.exp $name done 程序二:login.exp #!/user/bin/expect -f spawn ssh $[email]name@10.0.0.1[/email] expect "yes/no"; send "yes\r"; expect "password:" sent "123456"; interact; 执行: #./name.sh 发错误: can't read "name":no such variable 当name.sh执行子shell,login.exp时,login.exp无法知道name这个变量。 linuxsor...
我想在redhat下执行一个定时程序,用shell脚本完成,里面需要自动启动weblogic服务,test.bat脚本例如 #!/bin/bash cd /var/web/jsp/bea/user_projects/domains/mydomain ./startWeblogic 怎么样才能让执行./startWeblogic 呢 这样写直接报 -bash环境不存在 ./startWeblogic
我写了一个expect脚本,来模拟一个telnet到远程主机,并执行几条命令的过程,由于需要这个脚本要每5分钟跑一次,现在问题出现了,大概是运行过几十次以后脚本就会出现类似的问题,就是模拟telnet上去以后,执行的命令语句输入不完整 例如脚本里的命令是:send "current\n"; 但是我看日志里执行的却是"curr",或者是分成2次输入:"curr"换行后在输入"ent" 不知道大家能听明白不?