免交互输入

here document 免交互

对文本内容进行操作:
标准输入的替代品。

语法格式

命令 <<标记
内容
标记
命令:linux 命令

注意事项:
1.标记可以使用的任意字符。(字母和数字,一般不适用特殊字符。以字母开EOF)
2.结尾的标记一定要顶格,而且结尾的标记前不能有任何字符(空格也不能有)
3.标记前的行数

免交互输入

免交互输入_第1张图片

免交互输入_第2张图片

可以传参进免交互

免交互输入_第3张图片

免交互输入_第4张图片

关闭传参

免交互输入_第5张图片

忽略前面tab键的空格,但不忽略空格

免交互输入_第6张图片
 

expect
捕获
捕获命令的相关内容,字符串匹配

免交互不要元素(绿色背景)

expect 免交互
用于文本文件
自动化控制和测试,解决shell脚本中免交互的问题。
必须赋权执行
先声明#!/usr/bin/expect
\n:相当于换行符
\t:制表符,相当于tab键
\r:回车键
\b:退格键 相当于键盘删除

spawn 后面一般都是Linux的命令,表示开启会话或进程
跟踪后续免交互信息
spawn passwd root

send
发送
发送指令,模拟用户的输入

 

结束符:
expect eof 
表示交互结束,等待执行结束,退回到原来的用户 默认等待时间10s
退回到之前的终端

interact
执行完成之后保持状态,把控制权交给控制台,然后停留在目标终端,不会退回原终端

单分支

写法一:
expect "密码" {send "123456\r"}
写在一行必须要花括号

免交互输入_第7张图片

写法二
expect "密码"
send "123456\r"
换行写,无需花括号

免交互输入_第8张图片
多分支

expect
{
"捕获1" {send "123456\r"}
"捕获2" {send "123456\r"}
}

免交互输入_第9张图片

set 定义变量,设置参数 
set timeout 5     10s

set hostname [lindex $argv 0]
相当于hostname=$1

set passwd [lindex $argv 1]
相当于passwd=$2

终端切换不建议涉及嵌入式执行。

嵌入式

免交互输入_第10张图片

工作当中可以用到

免交互输入_第11张图片

你可能感兴趣的:(交互)