首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

bash 脚本嵌入 expect

执行一些命令时总是需要交互式的输入信息,如 等等,这可以起到提醒用户的作用,也更加保险。...由于 并没有默认安装,所以需要先安装: sudo apt install expect 另外因为 脚本有专用的解释器,所以在脚本的第一行不是: #!/bin/bash 而是: #!.../usr/bin/expect -f 如此一来,我们需要将用到交互式操作的命令均抽离出来分别写脚本,这样无疑会造成麻烦,如果交互式的命令很多时,会需要写很多脚本。...因此需要想办法将 脚本嵌入到 脚本。 在执行 脚本时有三种方法,第一种: ./bash_script.bash 这要求脚本有可执行权限并且第一行是: #!.../bin/bash expect_tmp() { expect -c " set timeout 10 spawn cmd ...

2K20
您找到你想要的搜索结果了吗?
是的
没有找到

expect脚本设置超时,比如下面的脚本

文件expect_ssh_scp.sh #!.../usr/bin/expect                                                                              #表示使用expect...我看到一种解释是:代码刚开始设定了timeout的时间为10秒,如果在执行scp任务时遇到了代码没有指定的异常,则在等待10秒后该脚本的执行会自动终止。这样理解对吗?...干嘛要这个超时限制啊,感觉很影响程序的效率,在执行过程遇见问题就返回问题信息,退出不就好了么,就算多给10秒,还不是没法解决。...就好比Java的异常处理机制,遇见异常就,throw  catch处理嘛,然后程序继续执行,这样多好, 如果某一个方法非常耗时,那么就等它执行完呗,就算有一天,出现无限循环这种永远的执行不完的方法

2.7K30

Linux expect 自动交互脚本用法

expect自动交互流程: spawn启动指定进程 expect获取指定关键字 send向指定程序发送指定字符 执行完成退出. 注意该脚本能够执行的前提是安装了 expect。...send:用于向进程发送字符串 expect进程接收字符串 spawn:启动新的进程 interact:允许用户交互 常用命令 spawn 交互程序开始后面跟命令或者指定程序...在expect多次匹配就需要用到 send_user 用来打印输出 相当于shell的echo exit 退出expect脚本 eof...expect执行结束 退出 set 定义变量 puts 输出变量 set timeout 设置超时时间 使用示例 下面以我最近使用的脚本来一行行进行分析..."${user}@${ip}'s password:" # 发送内容pass,类似于我们使用时输入密码,将该步骤交给脚本完成 send "${pass}\r" # 执行完成后自动退出 expect eof

1.6K30

expect 实现脚本的自动交互

expect 是建立在 tcl 语言基础上的一个自动化交互套件, 在一些需要交互输入指令的场景下, 可通过脚本设置自动进行交互通信。...可以将交互过程如:ssh 登录、ftp 登录、scp 复制文件等写在一个脚本上,使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境,可以大大提高系统管理人员的工作效率。...# send 和 send_user:send 会将 expect 脚本需要的信息发送给 spawn 启动的那个进程,而 send_user 只是回显用户发出的信息,类似于 shell 的 echo...expect 实例 自动拷贝 scp scp 远程复制文件(夹)涉及到很多交互式命令,我们不得不人工响应,expect 的出现解决了这个问题,实例脚本如下。...参考资料 expect自动交互详解 Ubuntu使用Spawn和expect实现ssh自动登陆 Linux通过expect工具实现脚本的自动交互

91431

Shell脚本expect实现自动交互

expect介绍 expect是一个自动交互功能的工具,可以满足代替我们实际工作需要从终端手动输入某些内容来使得程序或命令继续运行的目的。...如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况 expect主要命令 spawn 启动新进程,用于执行shell命令 send 发送字符串给expect控制的进程 set...设置变量 set user root expect 发起交互的命令的进程接受字符串,用于匹配我们预想的字符串 exp_continue 继续执行接下来的交互操作 set timeout -1 设置超时时间...永远等待 set timeout 10 设置超时时间 10秒 interact 将脚本的控制权交给用户,用户继续使用shell执行命令 $argv expect 脚本可以接受bash传递过来的参数...安装expect yum install expect 免密码通过SSH登录服务器 [root@linux /]# vim ssh.exp #!

1.4K30

Linux expect实现自动登录脚本实例代码

expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令。...所以,这时候只要知道对方机器的账号和密码就可以通过expect脚本实现登录和远程命令。...大多数工作都要在虚拟机上完成,为此每天要执行很多次【ssh xxx@xxxxxx】指令登录虚拟机;有很多方式解决这个问题,如使用xshell、secureCRT等工具记录常用的连接,我就写了一个简单的脚本实现一键登录...~ login.sh脚本内容如下: #!.../login.sh】配置别名alias,或移动到可执行目录,即可实现【login】一键登录; expect是一个处理交互的指令,通过expect我们可以把交互过程写到Shell脚本里以实现一些自动化操作

2.3K41

PHP终止脚本执行的实例代码

终止脚本执行,指的是通过一条语句告诉PHP引擎,此语句之后的其他语句不需要执行。...PHP提供了三种方式来终止脚本执行:return,die,exit return:执行到该处退出,如果是在函数,表示退出函数,如果是在脚本,表示脚本停止执行 //return //return '*...'; //exit //exit; //直接停止,不需要输出任何提示信息 //exit('stop here') ; //带括号表示在此处终止,但是要输出提示信息 //dieexit是一样的//die...; die('stop here') ; return:函数的return是返回函数调用的地方,脚本的return是返回给脚本被包含的地方。...php //终止脚本执行 echo 'start'; //return return '*'; 基于以上可能,所以PHP的配置文件(项目配置文件:数据库的连接信息等),采用以上方式 <?

1.2K20

shell脚本快速入门之-----深入介绍Expect免交互

免交互:自动化处理的前提条件 一、Expect概述 Expect是建立在tc|基础.上的一个工具,Expect 是用来进行自动化控制和测试的工具。主要解决shelI脚本不可交互的问题。...为了模拟这种输入,可以使用Expect脚本 Expect安装 挂载光盘 制作本地YUM源 执行安装命令 yum -y install expect 二、基本命令 1、格式 set...expect eof $argv参数数组 Expect脚本可以接受bash传递的参数,可以使用 [lindex argv n] 获得,n0开始,分别表示第一个1,第二个2,第三个3……参数 argvn...没有空格则表示脚本名称 ; argv n有空格则代表下标 Expect脚本必须以interact或expect eof 结束,执行自动化任务通常expect eof就够了 expect eof 是在等待结束标志...\r”} expect “ccc” {send “CCC\r”} 方式二:只要匹配了aaa或bbb或ccc的任何一个,执行了了相应的send语句后将会退出该expect语句 exoect { “aaa

2K31
领券