EOF使用主要有2个场景,分别是交互模式和追加多行模式,下面分别列举2个场景使用的示例供参考。
用于交互操作
传统分区方式
系统中有一块100G的硬盘sdb
对sdb使用fdisk进行分区,需要执行如下动作
- n(新建分区)
- 分区类型(默认回车即可,主分区)
- 分区ID(默认回车即可)
- 分区起始位置(默认回车即可)
- 输入分区大小
- 保存分区信息
使用EOF自动分区
#!/usr/bin/env bash
fdisk /dev/sdb << EOF
n
p
+500M
n
p
+600M
n
p
+700M
wq
EOF
分区后效果
追加多行内容操作
在shell脚本里输入多行内容时可以使用多个echo进行操作,但是这样的写法有点太麻烦而且看起来不方便,如果改为EOF的方式就可以使用如下方式:
cat > run-httpd.sh << EOF
#!/bin/bash
# Make sure we're not confused by old, incompletely-shutdown httpd
# context after restarting the container. httpd won't start correctly
# if it thinks it is already running.
rm -rf /run/httpd/*
exec /usr/sbin/httpd -D FOREGROUND
EOF
查看run-httpd.sh内容
cat run-httpd.sh
如果cat后面使用的是>>,那么就是追加模式。