shell免交互

本文介绍了HereDocument的使用方法,这是一种在脚本中免交互传递大量文本给命令的标准输入方式。同时,讲解了shell脚本中通过read命令接收用户输入并打印的场景,以及如何利用Expect工具自动化执行交互式任务,如磁盘分区操作。通过Expect,可以编写脚本自动响应命令行程序的输出,简化自动化流程。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值