Linux Shell 自动交互功能实现

本文介绍了Linux Shell中两种自动化交互功能:EOF多文本输入和Expect自动交互。通过实例展示了如何使用EOF进行多行文本输入,以及如何利用Expect脚本自动化处理需要交互输入的命令,如修改密码、批量拷贝文件。同时,文章还讨论了Expect的常用命令,如spawn、expect、send等,并提供了一个批量查看机器负载的小脚本作为实践示例。
摘要由CSDN通过智能技术生成

1. EOF 多文本输入

需求案例 1

新交付了一批机器,每台机器只分配了一块落盘 ,现在根据需求对该盘进行分区并实现挂载,如何实现?

需求分析:

对于一个盘,实现分区挂载到不同目录,通常思路有两条:

方法一: 将整块盘作为一个PV ,整合成VG卷,再根据划分不同LV卷大小分给不同目录方法二: 通过fdisk 将盘直接分割成对应需求的大小,再对磁盘初始化,完成挂载

方案解决

这里我们为了演示交互功能,选择方法二,实现脚本如下:

1

2

3

4

5

6

7

8

9

10

#!/bin/bash

fdisk /dev/sdb <<EOF

n

p

1

wq

EOF

  

 mkfs.xfs /dev/sdb1 &&  mkdir -p /data && mount /dev/sdb1 /data

echo '/dev/sdb1 /data xfs defaults 0 2' >> /etc/fstab

分析上述脚本,我们发现使用了 一个关键字 EOF

  • EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d就代表EOF.
  • EOF一般会配合cat能够多行文本输出.

其用法如下:

<<EOF //开始

.... //需要输入的内容

EOF //结束

例如使用 cat、<<、EOF>以交互方式编写bash脚本,如下所示。

1

2

3

4

5

6

cat << EOF > script.sh

#!/bin/bash

  

printf "Hello\n"

printf "Wordl!\n"

EOF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jh035

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值