示例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