Bash EOF 技巧
Bash EOF 技巧
文章目录
- Bash EOF 技巧
- 1. 命令行输出
- 2. 写入文本
- 3. 追加文本
- 4. 覆盖文本
- 5. 自定义 EOF
- 6. 另一种格式
- 7. 示例
- 7.1 配置文件
- 7.2 新建分区并挂载
- 7.3 设置变量
- 7.4 输出脚本
- 7.5 匹配输出
- 7.6 json 文本
EOF适用场景:
- 命令行多行输出
- 脚本包装
- 类型配置文件
1. 命令行输出
$ cat << EOF
> Hello
> EOF
Hello
2. 写入文本
cat << EOF >1.txt
111
222
333
EOF
复制终端是这样的。
cat << EOF >1.txt
> 111
> 222
> 333
> EOF
回车后
$ cat 1.txt
111
222
333
3. 追加文本
cat << EOF >> 1.txt
444
555
666
EOF
查看1.txt内容
$ cat 1.txt
111
222
333
444
555
666
4. 覆盖文本
cat << EOF >1.txt
aaa
bbb
ccc
EOF
查看
$ cat 1.txt
aaa
bbb
ccc
5. 自定义 EOF
cat << a > 1.txt
111
222
333
a
输出:
$ cat 1.txt
111
222
333
6. 另一种格式
cat > filename <<EOF
cat << EOF > filename
cat > 1.txt <<EOF
123
456
789
EOF
查看
$ cat 1.txt
123
456
789
追加内容
cat >> 1.txt <<EOF
abc
def
ghi
EOF
查看内容
$ cat 1.txt
123
456
789
abc
def
ghi
7. 示例
7.1 配置文件
或者cat << EOF > /usr/local/mysql/my.cnf
cat > /usr/local/mysql/my.cnf << EOF
[client]
port = 3306
socket = /usr/local/mysql/var/mysql.sock[mysqld]
port = 3306
socket = /usr/local/mysql/var/mysql.sockbasedir = /usr/local/mysql/
datadir = /data/mysql/data
pid-file = /data/mysql/data/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1
sync_binlog=1
log_bin = mysql-bin[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4Msql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
port = 3306
EOF
7.2 新建分区并挂载
$ cat auto_add_disk.sh
#!/bin/bash
fdisk /dev/sdb <<EOF
n
p
1wq
EOF/sbin/mkfs .ext4 /dev/sdb1 && /bin/mkdir -p /data && /bin/mount /dev/sdb1 /data
echo 'LABEL=data_disk /data ext4 defaults 0 2' >> /etc/fstab
7.3 设置变量
$ sql=$(cat <<EOF
SELECT foo, bar FROM db
WHERE foo='baz'
EOF
)$ echo -e "$sql"
7.4 输出脚本
cat <<EOF > print.sh
#!/bin/bash
echo \$PWD
echo $PWD
EOF
查看内容
$ cat print.sh
#!/bin/bash
echo $PWD
echo /home/user
7.5 匹配输出
$ cat <<EOF | grep 'b' | tee b.txt
> foo
> bar
> baz
> EOF
bar
baz$ cat b.txt
bar
baz
7.6 json 文本
cat >> /etc/docker/daemon.json < EOF
{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]}EOF
查看
$ cat /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]}
参考:
- How does “cat << EOF” work in bash?
- What is Cat EOF in Bash Script?
Bash EOF 技巧相关推荐
- 简洁的 Bash Programming 技巧(三)
这是简洁的 Bash Programming 技巧系列的第三篇文章,这一系列的文章专门介绍 Bash 编程中一些简洁的技巧,帮助大家提高平时 Bash 编程的效率.有兴趣的同学可以回顾下之前的两篇文章 ...
- Shell编程:简洁的 Bash Programming 技巧(三)
这是简洁的 Bash Programming 技巧系列的第三篇文章,这一系列的文章专门介绍Bash编程中一些简洁的技巧,帮助大家提高平时 Bash 编程的效率.有兴趣的同学可以回顾下之前的两篇文章(一 ...
- Shell编程:简洁的 Bash Programming 技巧
简洁的 Bash Programming 技巧这一系列文章专门介绍Bash编程中一些简洁的技巧,帮助大家提供 Bash 编程的效率,目前该系列已经有三篇文章,有兴趣的同学可以继续阅读其它两篇续篇(一) ...
- Shell编程:简洁的 Bash Programming 技巧续篇
简洁的 Bash Programming 技巧系列文章专门介绍Bash编程中一些简洁的技巧,帮助大家提高平时 Bash 编程的效率.继上一篇文章发布后,收到很多读者的反响,所以我决定继续将自己学到的一 ...
- Bash 使用技巧大补贴
Bash 是我们经常与之打交道的 Shell 程序,本文针对其使用技巧进行了搜罗.相信在你看过这些内容之后,定会在 Bash 的世界里游刃有余. 从历史中执行命令 有时候,我们需要在 Bash 中重复 ...
- Bash 使用技巧大补贴(转)
http://linuxtoy.org/archives/the-best-tips-and-tricks-for-bash.html Bash 是我们经常与之打交道的 Shell 程序,本文针对其使 ...
- bash使用技巧整理
说明: 这些技巧主要来自history&read line这两个库,下文中的技巧也适用其它使用该库的应用程序. bash命令可以使用ctrl + alt + e展开,参数使用ctrl x + ...
- Bash功能与使用技巧
Bash功能与使用技巧 目录: 历史命令 命令别名 管道与重定向 常用快捷键 作业控制 花括号扩展 一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的 ...
- linux中bash的功能主要有,Linux系统中的Bash功能的介绍
今天小编要跟大家分享的文章是关于Linux系统中的Bash功能的介绍.一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无 ...
最新文章
- 【作死】更新macOS Mojave后Vagrant无法使用
- H3C 多区域MSTP配置
- synergy软件ubuntu配置
- Windows server 1709(不含UI)模板部署
- 音频编码解码器库 libZPlay
- 你用好了没?K8 CPU使用指南
- codeforces 463C. Gargari and Bishops 解题报告
- QObject::connect: Cannot queue arguments of type xxx的解决方案
- vacode允许c_使用VS code编译运行C,C++,Java程序
- au人声处理_Audacity音频处理
- f-stack nginx 多进程模式启动 main_loop 流程分析
- Javascript高级程序设计(一)
- 【复杂网络】【社区发现】算法Louvain_FastUnfloding
- 两个平面的位置关系和判定方程组解_必修二数学课后题答案
- 自适应滤波器的FPGA实现
- setMinDate出现java.lang.IllegalArgumentException: fromDate:xxx does not preced toDate: xxx异常的简单解决办法
- java视频生成缩略图_Java中使用ffmpeg生成视频缩略图
- JAVA怎么给扇形加边框_PS怎么制作扇形边框 扇面边框教程
- 通达信指标:捕捞季节
- 优秀的 GitHub 项目合集