首页 > 其他分享 >配置 expect 免交互自动化脚本 2个示例

配置 expect 免交互自动化脚本 2个示例

时间:2024-09-03 13:54:59浏览次数:11  
标签:格式化 示例 密码 expect 挂载 disk 交互


文章目录


示例1:实现密码输入错误的提示

expect 脚本中,可以通过捕捉密码错误的输出信息来提示用户。比如:

expect {
    "password" {send "$password\r"}
    "Permission denied" {send_user "密码输入错误,请重新输入。\n"; exit}
}

示例2:用免交互的方式给硬盘分区、格式化、挂载

使用 expect 脚本可以自动化地完成硬盘的分区、格式化和挂载。

#!/bin/bash
disk=$1

# 使用 expect 自动化分区
/usr/bin/expect <<-EOF
spawn fdisk $disk
expect "命令" {send "n\r"}        # 新建分区
expect "Select" {send "\r"}      # 选择主分区
expect "分区" {send "\r"}         # 分区号默认
expect "起始" {send "\r"}         # 起始扇区默认
expect "Last" {send "\r"}        # 结束扇区默认
expect "命令(输入 m 获取帮助):" {send "w\r"}  # 保存并退出
expect eof
EOF

# 刷新分区表
partprobe

# 格式化分区为 XFS 文件系统
mkfs.xfs ${disk}1 -f &> /dev/null
if [ $? -eq 0 ]; then
    echo "磁盘格式化完成"
    mkdir -p /opt/disk
    mount ${disk}1 /opt/disk
    df -h
else
    echo "格式化失败,脚本出错!"
fi

标签:格式化,示例,密码,expect,挂载,disk,交互
From: https://blog.csdn.net/qq_44421043/article/details/141790859

相关文章

  • Linux免交互及使用 Here Document 实现免交互
    文章目录交互概念Linux中的免交互应用HereDocument免交互基本语法示例功能配置示例交互概念交互指的是在程序运行过程中,用户可以通过发出指令控制程序的执行,而不是仅由程序单方面执行。例如,在多媒体播放时,用户可以暂停或调整音量。对于Linux操作系统,许多操作会......
  • Linux 使用 expect 脚本实现自动化交互
    文章目录Expect自动化交互主要功能和语法执行方式嵌入执行模式示例Expect自动化交互expect是一种基于tcl语言的自动化工具,用于替代用户与程序之间的交互动作,实现自动化交互。它的应用场景包括SSH、SCP、FTP、RSYNC等任务中的免密交互,以及设置密码等自动化任务......
  • vue使用echart示例
    <template><el-cardshadow="never"><template#header><divclass="flexjustify-between"><spanclass="text-sm">订单统计</span><div&g......
  • Go语言中的交互式CLI开发:survey库简介
    在构建命令行工具时,良好的用户交互体验至关重要。尤其是在需要与用户进行复杂输入的场景下,传统的命令行参数和标志可能显得笨拙。github.com/AlecAivazis/survey/v2是一个为Go语言设计的库,专门用于构建交互式的命令行界面。它提供了多种用户输入方式,让你的CLI工具变得更加易......
  • 25. shell当中的函数详解,管理函数,定义函数,交互式环境调用函数,查看删除函数,脚本中的函
    文章目录前言管理函数定义函数交互式环境调用函数查看函数删除函数脚本中的函数定义及使用函数使用函数文件环境函数示例总结友情链接前言函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独......
  • 32.全网最详细trap讲解,trap语法格式,信号和用途,最常用的信号,trap常用的命令,ctrl +
    文章目录语法详解trap格式信号和用途最常用的信号trap常用的命令示例ctrl+c示例信号屏蔽和恢复trap-示例debug示例exit示例return示例综合案例案例1案例2案例3总结友情链接信号捕捉trap,它用于捕获指定的信号并执行预定义的命令。比如,按Ctrl+C会使脚本终止执行,实际上系统发......
  • 使用同步锁的代码示例1
    使用同步锁的代码示例packageorg.zyf.javabasic.thread.lock.opti;importjava.util.concurrent.locks.ReentrantLock;/***@program:zyfboot-javabasic*@description:使用了ReentrantLock来保护对共享资源(counter)的访问,确保同一时间只有一个线程可以对计数器......
  • 使用同步锁的代码示例26
    使用同步锁的代码示例packageorg.zyf.javabasic.thread.lock.opti;importjava.util.concurrent.locks.ReentrantLock;/***@program:zyfboot-javabasic*@description:使用了ReentrantLock来保护对共享资源(counter)的访问,确保同一时间只有一个线程可以对计数器......
  • 使用同步锁的代码示例30
    使用同步锁的代码示例packageorg.zyf.javabasic.thread.lock.opti;importjava.util.concurrent.locks.ReentrantLock;/***@program:zyfboot-javabasic*@description:使用了ReentrantLock来保护对共享资源(counter)的访问,确保同一时间只有一个线程可以对计数器......
  • RuntimeError: Expected all tensors to be on the same device, but found at least
    RuntimeError:Expectedalltensorstobeonthesamedevice,butfoundatleasttwodevices,cuda:0andcpu!(whencheckingargumentforargumenttensorsinmethodwrapper_CUDA_cat)这个错误再次指出了在执行`torch.cat`操作时,参与操作的张量不在同一个设备上。错误......