提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
Here Document免交互
使用I/0重定向的方式将命令列表提供给交互式程序或命令,比如ftp、 cat或read命令。
是标准输入的一种替代品可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个“文件"并用作“命令”的标准输入。HereDocument也可以与非交互式程序和命令一起使用。
基本格式:
命令 <<标记
…
内容 # 标记之间是传入内容
…
标记
注意
标记可以使用任意合法字符(通常为EOF)
结尾的标记-一定要顶格写,前面不能有任何字符
结尾的标记后面也不能有任何字符(包括空格)
开头标记前后的空格会被省略掉
行数的统计
read接收并打印
面交互给用户设置密码
整体赋值给变量
Expect 自动化交互
expect 是一个免费的编程工具语言,常用来实现自动和交互式任务进行通信,而无需人的干预
expect 需要 Tcl 编程语言的支持,要在系统上运行 expect 必须首先安装 Tcl
基本命令
spawn
spawn 后面通常跟一个Linux执行命令,表示开启一个会话、启动进程,并跟踪后续交互信息
expect
判断上次输入结果中是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回只能捕捉由spawn启动的进程的输出用于接收命令执行后的输出,然后和期望的字符串匹配。
send
向进程发送字符串,用于模拟用户的输入
该命令不能自动回车换行,一般要加 \r (回车)或者 \n
expect 直接执行
磁盘分区
#!/usr/bin/expect
spawn fdisk /dev/sdb
expect “命令” {send “n\r”}
expect “Select” {send “p\r”}
expect “分区号” {send “1\r”}
expect “起始” {send " \r"}
expect “Last 扇区” {send “+10G\r”}
expect “命令” {send “w\r”}
expect eof