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

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传递过来的参数...[root@linux /]# 批量获取在线的IP地址机进行批量秘钥分发 [root@linux /]# vim ssh.sh #!

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

Linux expect 自动交互脚本用法

最近用到自动交互脚本进行数据库备份,以前虽然也有用来使用 ftp 远程获取文件,还来没有系统记录过,趁这次机会总结一下。...安装 expect expect是一个自动交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。...expect自动交互流程: spawn启动指定进程 expect获取指定关键字 send向指定程序发送指定字符 执行完成退出. 注意该脚本能够执行的前提是安装了 expect。...见谅~ 免交互expect eof和interact的区别 二者都是结束符号 expect eof :等待执行结束,用于执行自动化任务,无需后续继续交互,直接完成并退出。...Copyright: 采用 知识共享署名4.0 国际许可协议进行许可 Links: https://lixj.fun/archives/about-linux-expect

1.6K30

Linux 登陆shell交互shell以及环境变量读取顺序

Linux用户在登陆到Linux服务器时,一些登陆的提示欢迎信息,以及特定的环境配置等等都按预先设定好的配置来生效。...Linux中的这个shell环境会读取很多不同的配置文件来达成上述目的,同时还有登陆shell与非登陆shell的区分。本文对此作简要描述,供大家参考!...,77122,77158,77283为登陆shell 二、交换shell与非交互shell 交互shell(interactive shell)   交互式模式就是在终端上执行,shell等待你的输入...这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、退出。当你退出后,shell也终止了。...非交互shell(non-interactive shell)   shell也可以运行在另外一种模式:非交互式模式,以shell script(非交互)方式执行。

1.9K40

Shell 交互输入

场景描述 如果脚本中使用ssh 登录服务器,如何用shell实现自动输入密码呢? ...2.管道 前两种前提条件是指令必须有参数设置密码的输入方式,比如sudo -S 表示从标准输入中读取密码, 但是ssh 没有任何参数表示输入密码,只能使用第三种办法: 3. expect 主要适用于交互脚本中...,详细参见1,内容比较多,这里只写如何解决自动用ssh登录服务器 和shell一样, 需要安装expect 解释器: sudo apt-get install expect 新建的文件以*.exp结尾,...123\r"} } interact 解释如下: 设定超时时间15s spawn是expect的语句,执行命令前都要加这句; expect  上次的命令是否包含password:字符串 send 执行交互动作...,与手工输入密码类似,将密码发送出去 interact 执行完成后,把控制权交给控制台 shell 中如何嵌入或调用expect语言 shell 中嵌入expect有点复杂,这里不做介绍 shell 中可以通过

1.9K20

Linux Shell命令自动补全的实现

背景介绍 最近在完成一个由linux shell脚本编写的工具时,发现在实现多个功能时,冗长的多个参数不仅难记而且大小写混杂,虽然“悉心”地写了完备的'-h'帮助文档,但是为了实现其中一个功能,仍然需要输入多个冗长的字符串来定位某个大选项下的小选项所对应的功能...实现思路 在 linux shell 下本身有着体验极佳的命令补全功能,即[Tab][Tab]。现通过自定义该程序的命令补全脚本实现命令补全。...重点说明 执行shell 函数,函数中生成COMPREPLY作为候选的补全结果 compgen(筛选命令) 用来筛选生成匹配单词的候选补全结果 [root@localhost ~]# help compgen...--GetRaidHbaInfo 结语 可将编写好的脚本在用户根目录.bash_profile中进行调用,亦可放于/etc/bash_completion.d/下,这样在下次登录终端时即可自动...source自动补全脚本。

5.5K31

Linux之expect工具免交互shell脚本执行

Linux之expect工具是一个根据脚本与其他交互式程序进行交互。通过在脚本中设定期望值和响应值进行交互操作。主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。.../usr/bin/expect ---v显示expect版本信息 expect 命令参数: spawn交互程序开始,执行后面的命令或程序。...需要进入到expect环境才可以执行,不能直接在shell环境下直接执行set timeout n设置超时时间,表示该脚本代码需在n秒钟内完成,如果超过,则退出。..., 如果匹配成功, 就执行send的指令交互;否则等待timeout秒后自动退出expect语句send如果匹配到expect接受到的信息,就将send中的指令交互传递,执行交互动作。...没有该命令执行完后自动退出而不是留在远程终端上puts输出变量 安装使用 安装 sudo yum -y install expect 或者 sudo apt update && sudo apt-get

1.1K10

LinuxShell自动交互

简介 Linux Shell自动交互在很多场景下会使用到,比如我们需要批量运行一些需要输入参数进行交互的命令时,此时 Shell自动交互就能将我们从重复无聊的手动交互中解放出来。 2....2.1 内联输入重定向符 内联输入重定向符是一种输入重定向符,该输入重定向符用于从命令行中指定用于输入重定向的数据,因此可以用它来实现 Shell自动交互。...2.2 管道符 除了使用内联输入重定向符,也可以使用管道符来实现 Shell 自动交互。 #!...自动交互的工具,有些 Linux 发行版可能没有预装,需要自行安装。...在 expect 脚本中: spawn 后面指定要实现自动交互的命令。 expect 用来等待要识别的消息。 send 用来发送输入参数。 expect off 用来指明自动交互结束。

71820

如何在 Linux 上安装友好的交互shell:Fish

shell 84% 编译自  https://www.ostechnix.com/install-fish-friendly-interactive-shell-linux/ 作者  Sk 译者  kimii...Fish,友好的交互式 shellFriendly Interactive SHell的缩写,它是一个适于装备于类 Unix 系统的智能而用户友好的 shell。...在这篇教程中,我们讨论如何在 Linux 中安装和使用 fish shell。...安装 Fish 尽管 fish 是一个非常用户友好的并且功能丰富的 shell,但并没有包括在大多数 Linux 发行版的默认仓库中。...自动建议 当我输入一个命令,它以浅灰色自动建议一个命令。所以,我需要输入一个 Linux 命令的前几个字母,然后按下 键来完成这个命令。 如果有更多的可能性,它将会列出它们。

1.6K70

Linux——shell

什么是shellshell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器) 。它接收用户输入的命令并把它送入内核去执行。起着用户与系统之间进行交互的作用。 ?...shell的功能: 命令行解释 命令的多种执行顺序 通配符 命令补全、别名机制、命令历史 I/O重定向 管道 命令替换(` ` 或$( ) ) shell编程语言 shell可以执行——内部命令、外部命令...shell命令分为: 内部(内置)命令 内部命令是shell本身包含的一些命令,这些内部命令的代码是整个shell代码的一个组成部分; 内部命令的执行是shell通过执行自己的代码中的相应部分来完成的...外部(外置)命令 外部命令的代码则存放在一些二进制的可执行文件或者shell脚本中; 外部命令执行时,shell会在文件系统中指定的一些目录去搜索相应的文件,然后调入内存执行。...shell变量PATH中 ?

10.7K30

Linux Shell(一)——Shell变量

1 变量的分类 在Linux中,变量分为环境变量 和 局部变量。 环境变量能被子进程继承,而局部变量只能在当前进程中使用。...系统变量是系统启动时自动创建的变量,往往为系统运行提供支持;而自定义变量是用户自己定义的。一般而言,系统变量全为大写,自定义变量全为小写。...SHELL:当前使用的SHELL HISTSIZE:历史命令的最大条数 MAIL:当前用户的邮箱目录 PATH:可执行文件的查找路径。...2.3 取消变量 unset 变量名 3 环境变量 自定义变量相当于局部变量,只能在当前shell中使用;而环境变量相当于全局变量,可以在子shell中使用。...5 变量类型:declare/typeset Linux中的变量一共有5种类型,分别是:字符、整型、只读、环境变量。

12K70
领券