expect命令(expectsend命令中带[]怎么处理)

:暂无数据 2026-06-07 03:00:06 0

expect命令(expectsend命令中带[]怎么处理)

各位老铁们,大家好,今天由我来为大家分享expect命令,以及expectsend命令中带[]怎么处理的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

expectsend命令中带[]怎么处理

expectsend命令中带处理的方法是
1、使用转义字符(将匹配方括号和字母a、b、c中的任意一个。
2、使用字符范围(-):方括号内可以使用连字符(-)表示一个字符范围。例如,表示匹配从小写字母a到小写字母z之间的任意一个字符。
3、使用反向字符集(^):在方括号内的开头使用^表示反向字符集,即匹配不在方括号中的字符。例如,表示匹配任何非数字字符。

linux的expect代码,发现如果不加interact,则send命令好像没有执行,如果加上interact命令才执行

常见的做法是将interact换成 expect eof ,从而可以捕获到spawn命令启动的进程的结束状态。
如果坚持使用interact可以在命令执行完成后依然保持在登陆在远程服务器上,可以直接手工敲命令进行交互,完成后续工作,最后需要exit退出ssh远程登陆。
至于去掉interact却没有使用expect eof的情况下send没有执行的问题,主要是因为因为spawn会启动一个进程,但是没有捕获匹配eof或者time out事件造成的

linux spawn命令

spawn是进入expect环境后才可以执行的expect内部命令。expect是一种脚本语言,它能够代替我们实现与终端的交互,我们不必再守候在电脑旁边输入密码,或是根据系统的输出再运行相应的命令。

如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,用户无法找到一个dir.com或dir.exe的可执行文件。它主要的功能是给运行进程加个壳,用来传递交互指令。

扩展资料:

下面是一个能用来实现自动执行该命令的Expect脚本:

#!/usr/bin/expect

# Change a login shell to tcsh

set user

spawn chsh $user

expect "]:"

send "/bin/tcsh "

expect eof

exit

和其他脚本一样首行指定用来执行该脚本的命令程序,这里是/usr/bin/expect。程序第一行用来获得脚本的执行参数(其保存在数组$argv中,从0号开始是参数),并将其保存到变量user中。

第二个参数使用Expect的spawn命令来启动脚本和命令的会话,这里启动的是chsh命令,实际上命令是以衍生子进程的方式来运行的。

参考资料来源:百度百科-SPAWN (Expect编程工具语言)

如何判断expect中调用的命令是否成功

set time 300应该是set timeout 300吧。你可以在set timeout命令前面或者后面加一条命令:log_file /tmp/expect.log复制代码然后从log里面看命令是否执行成功了。回复 1# baochenggood

expect学习之如何获取命令行参数和函数参数

  比如下面脚本用来做ssh无密码登陆,自动输入确认yes和密码信息,用户名,密码,hostname通过参数来传递
  
  ssh.exp
  
  Python代码
  #!/usr/bin/expect
  set timeout 10
  set username
  set password
  set hostname
  spawn ssh-copy-id -i .ssh/id_rsa.pub $username@$hostname
  expect "yes/no"
  send "yes\r"
  expect "password:"
  send "$password\r"
  
  expect eof
  
  执行脚本./ssh.exp root pasword hostname1
  
  expect接收参数的方式和bash脚本的方式不太一样,bash是通过$0 ... $n 这种方式,而expect是通过set 《变量名称》

shell脚本中,用expect命令如何实现自动远程操作,折磨我好久了..

既然$无法匹配,我觉得你完全可以单独配置一个环境变量,比如说我登录到服务器后
echo "SCPGOGOGO"
expect捕获到SCPGOGOGO 开始执行scp
expect好久不写了,不知道$?判断怎么写,如果要写我的翻书了。
当判断$?为真,然后执行send "java -jar"。不过我想在仔细思考一下可能会有更好的逻辑。
我不太稀饭expect这种交互写法。
因为有更多简单便捷的方法,不知道你为什么不用。
sshpass ssh密钥 简单点直接用sh操作ssh就可以达到你想要的效果,why死扣expect?,
各种集中式管理软件(puppet,salt,ansible...)都是为了方便远程操作管理的东西why?不用?
本来1小时解决的问题,死扣expect花了好几天,这种把一个问题发展到解决2个问题的做事方法不可取。

expect如何将命令结果赋值给变量

改成 send “exit \$ret\r” ret 变量是 ssh 到远端后shell里面定义的 (即你之前的send "ret=`echo $?`\r") ,所以要把 $ 用 \ 转意,否则 $ret 指的是 expect 里的ret变量,你在 expect 里当然没有定义过这个变量了,所以出错。

windows expect怎么使用

你是说shell的expect么,我有个ssh自动登录的脚本,你看下1. [#!/usr/bin/expect]
2. [set timeout 30]
基本上认识英文的都知道这是设置超时时间的,现在你只要记住他的计时单位是:秒
3. [spawn ssh -l username 192.168.1.1]
spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个dir.com 或 dir.exe 的可执行文件。
它主要的功能是给ssh运行进程加个壳,用来传递交互指令。
4. [expect "password:"]
这里的expect也是expect的一个内部命令,有点晕吧,expect的shell命令和内部命令是一样的,但不是一个功能,习惯就好了。这个命令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的30秒
5. [send "ispass\r"]
这里就是执行交互动作,与手工输入密码的动作等效。
温馨提示: 命令字符串结尾别忘记加上 “\r”,如果出现异常等待的状态可以核查一下。
6. [interact]
执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行

以上就是我们为大家找到的有关“expect命令(expectsend命令中带[]怎么处理)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

expect命令(expectsend命令中带[]怎么处理)

本文编辑:admin

更多文章:


send out用法及例句(send out是什么意思)

send out用法及例句(send out是什么意思)

各位老铁们好,相信很多人对send out用法及例句都不是特别的了解,因此呢,今天就来为大家分享下关于send out用法及例句以及send out是什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月7日 20:30

全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)

大家好,关于全球新冠肺炎疫情背景下航运发展很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决

2026年9月7日 17:10

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)

大家好,关于matlab求解带字母参数方程组很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数的知识点,相信应该可以解决大家的一些困惑和问题,

2026年9月7日 16:30

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)

本篇文章给大家谈谈oracle中的循环语句,以及下面哪个不是oracle程序设计中的循环语句 a for对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 15:30

多表查询怎么做(Excel技巧:如何多表同步筛选)

多表查询怎么做(Excel技巧:如何多表同步筛选)

各位老铁们好,相信很多人对多表查询怎么做都不是特别的了解,因此呢,今天就来为大家分享下关于多表查询怎么做以及Excel技巧:如何多表同步筛选的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月7日 15:10

服装店网站网页设计(服装网站建设目标设计要看甲方)

服装店网站网页设计(服装网站建设目标设计要看甲方)

“服装店网站网页设计”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看服装店网站网页设计(服装网站建设目标设计要看甲方)!

2026年9月7日 14:10

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)

大家好,电脑里2个系统怎么删除一个相信很多的网友都不是很明白,包括电脑开机显示有两个系统,如何删除一个也是一样,不过没有关系,接下来就来为大家分享关于电脑里2个系统怎么删除一个和电脑开机显示有两个系统,如何删除一个的一些知识点,大家可以关注

2026年9月7日 12:20

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

苹果手机代码大全(恢复更新固件iOS未知错误代码解决大全)

大家好,今天小编来为大家解答以下的问题,关于苹果手机代码大全,恢复更新固件iOS未知错误代码解决大全这个很多人还不知道,现在让我们一起来看看吧!

2026年9月7日 10:20

scrollthrough意思(“scroll”是什么意思)

scrollthrough意思(“scroll”是什么意思)

今天给各位分享“scroll”是什么意思的知识,其中也会对“scroll”是什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 08:00

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)

本篇文章给大家谈谈怎么激活keygen,以及注册机如何激活cad2008一个简单激活cad2008的方法对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站

2026年9月7日 06:30

最近更新

热门文章

dessert(dessert是什么意思)
2026-05-03 12:45:03 浏览:7
标签列表