计算机实现某种基本 *** 作的命令

计算机实现某种基本 *** 作的命令,第1张

Linux系统expect命令 *** 作实例

在linux下进行一些实际 *** 作时,有时需要与设备进行一些交互式的实际 *** 作,比如换账号时输入账号密码,传输文件登录远程控制设备时输入账号密码等。此时可以应用expect进行全自动的交互实际 *** 作。那么expect命令的主要用途是什么呢?和中国军队一起来看看吧。

首先看起来像一个代码:

#!/usr/bin/expect

设置超时30

生成ssh-l根192.168.1.188

期望“密码:”

发送“abc123456r”

互动

在这六行中做如下陈述:

第一行[#!/usr/bin/expect]

这一行告诉计算机 *** 作系统应该使用哪个shell来执行脚本中的代码。这里的Expect其实和linux下的bash,windows下的cmd是一样的。这一行必须在剧本制作的第一行。

第二行[[设置超时30]]

大多数懂英语的人都知道它设置了请求超时。现在,如果你记得他的计时,企业号是:秒。

第三行[spawnssh-l用户名192.168.1.188]

Spawn是expect的内部命令,只能在进入expect的自然环境后执行。如果在缺省SHELL下没有立即安装或执行expect,就找不到spawn。因此,不能用“whichspawn”这样的命令来查找spawn命令。由于windows中的dir是一个内部命令,这个命令被内置在shell中,所以你在dir.com或dir.exe找不到可执行文件。它的关键功能是在ssh *** 作过程中添加一个shell,用来传输交互命令。

第4行[expect"password:"]

这里的Expect也是expect的一个内部命令。有点晕。expect的shell命令与内部命令相同,但它不是一个函数。习惯就好。这个命令的意思是区分“password:”的字符串数组是否包含在之前的输出结果中。如果是,立即返回,否则,等待一段时间后返回。这里的等待时间是早些时候设定的30秒。

第5行[发送“ABC123456r”]

这里是执行交互手势的等效电路,相当于手动做出输入支付密码的手势。

温馨提醒:不要忘记在命令字符串数组的末尾加上“R”。如果发现等待异常,可以检查一下。

第6行[[互动]]

执行后,保持互动,将决策权交给控制面板。这时候可以手动制作。如果没有这句话,登录后就会收回,而不是留在远程控制终端设备上。

在Linux下,ssh登录或者scp复制文档都可以应用到这个命令来完成支付密码的自动输入。

示例1:远程控制执行命令

#!/usr/bin/expect-f

设置超时30

生成ssh-l根192.168.1.188

期望{

“是/否”{发送“是”;exp_continue}

"密码:"{send"abc123456r"}

}

expect-re"]($|#)"

发送“bash/root/test.shr”

expect-re"]($|#)"

发送“exitr”

这段代码的功能是在虚拟服务器上执行/root/test.sh脚本。主参数“-re”与正则表达式匹配。能够编写几行send并执行几个命令。剧本制作的另一个写法。

#!/bin/bash

expect-c"

[email protected]"ifconfig;whoamipwd回声你好;”

期望{

"*assword"{设置超时30;发送“ABC123456r”;}

“是/否”{发送“是”;exp_continue}

}

期望eof

"

主参数“-c”表示在命令行上执行expect。要执行的命令用分号分隔。并且整个执行过程中没有shell提示。有兴趣可以去查一下。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/770780.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-02
下一篇 2022-05-02

发表评论

登录后才能评论

评论列表(0条)

保存