当脚本得到特征字符串时,expect将发送/bin/tcsh和 一个回车符给chsh命令。最后脚本等待命令退出(chsh结束),一旦接收到标识子进程已经结束的eof字符,expect脚本也就退出结束。 3、决定如何响应 系统管理员往往有这样的需求,希望根据当前的具体情况来以不同的方式对一个命令进行响应。我们可以通过后面的例子看到expe...
exit 退出expect脚本 expect eof: spawn进程结束后会向expect发送eof,接收到eof代表该进程结束 interact 执行完代码后保持交互状态,将控制权交给用户。没有该命令执行完后自动退出而不是留在远程终端上 puts 输出变量 四、实战案例 4.1 登录远程服务器并在远程服务器上执行命令 #!/usr/bin/expect spawnsshroot@192....
-i:交互式输入命令,使用"exit"或"EOF"退出输入状态。 –:标示选项结束(如果你需要传递与expect选项相似的参数给脚本时),可放到#!行:#!/usr/bin/expect --。 -v:显示expect版本信息。 远程获取目标服务器执行命令的返回值 #!/bin/bash password=111111 expect <<EOF >getfile set timeout 30 spawn ssh roo...
将要统计的内容置于标记“EOF”之间,直接将内容传给 wc -l 来统计 wc -l <<EOF>Line1 >Line2 >EOF 1. 2. 3. 4. (2)通过 read 命令接收输入并打印 输入值是两个 EOF 标记之间的部分,作为变量 i 的值 read i <<EOF>Hi >EOF echo $i 1. 2. 3. 4. (3)通过 passwd 给用户设置密码 passwd ...
楼主是问的脚本非交互式运行吧,这个是和spawn对应的,当spawn发送指令到终端执行时在返回时被expect捕捉时,在起始会有一个eof,就好比在shell中 cat >>file <<OEF\r\r content \r\r EOF一样,在结束时也要有EOF,这样是对应的。
expect eof 如下执行: expect test.ctl 输出如下: spawn ssh root@127.0.0.1 root@127.0.0.1's password: Last login: Sat Jul 16 02:44:48 2022 from 127.0.0.1 [root@zxy ~]# exit logout Connection to 127.0.0.1 closed. 1. send命令
expect eof :等待执行结束,若没有这一句,可能导致命令还没执行,脚本就结束了 interact : 执行完成后保持交互状态, 这时可以手动输入信息 注:expect eof 与 interact 二选一即可 实例 下面通过一些常用的expect脚本来具体的说明如何使用expect来完成日常的一些工作。
vim 1.exp #! /usr/bin/expect set host "192.168.6.77" set passwd "12341234" spawn ssh ...
防止expect在EOF时退出 我有一个使用 openconnect 连接到 VPN 的期望脚本。该脚本运行良好,只是我不知道在提供密码并且预期已达到 EOF 后如何保持 openconnect 处于活动状态。我认为我需要分叉该进程,但我需要它以某种方式保留密码。这是我的脚本 #!/usr/bin/expect -fspawn ./openconnect...
expect eof': 这表示脚本会等待子进程的结束(eof 表示 end of file)。一旦子进程结束,整个 expect 脚本也就结束了。 使用技巧 模式和通配符 expect命令的模式可以包含通配符,如*、?、[...],以匹配可变的输出部分。 超时设置 使用timeout 选项可以设置等待模式出现的最大时间,避免无限等待。