正文

Bash?EOF的使用小结(bash shell)速看

文章摘要

这篇文章介绍了在Bash脚本中使用EOF(End of File)来控制命令行输出和文本操作的方法。EOF在Bash中用于多行输出、写入文本、追加文本、覆盖文本以及自定义文件末尾的内容。文章详细讲解了如何通过`cat << EOF`、`cat > filename << EOF`等方式实现这些功能,并提供了多个示例,如配置文件、新建分区及挂载、变量设置、输出脚本、匹配输出及JSON文本等场景。这些方法适用于命令行多行输出脚本的包装、配置文件管理以及变量设置等场景。文章通过具体的例子展示了EOF在Bash中的实际应用,帮助读者更好地理解和掌握其用法。


目录1. 命令行输出2. 写入文本3. 追加文本4. 覆盖文本5. 自定义 EOF6. 另一种格式7. 示例7.1 配置文件7.2 新建分区并挂载7.3 设置变量7.4 输出脚本7.5 匹配输出7.6 json 文本参考:

EOF适用场景:

命令行多行输出脚本包装类型配置文件
$ cat << EOF > Hello > EOF Hello
cat << EOF >1.txt 111 222 333 EOF

复制终端是这样的。

cat << EOF >1.txt > 111 > 222 > 333 > EOF

回车后

$ cat 1.txt 111 222 333
cat << EOF >> 1.txt 444 555 666 EOF

查看1.txt内容

$ cat 1.txt 111 222 333 444 555 666
cat << EOF >1.txt aaa bbb ccc EOF

查看

$ cat 1.txt aaa bbb ccc
cat << a > 1.txt 111 222 333 a

输出:

$ cat 1.txt

111

222

333 cat > filename <<EOFcat << 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

或者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.sock basedir=/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=4M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES? port=3306 EOF
$ cat auto_add_disk.sh ? ? ? #!/bin/bash fdisk ?/dev/sdb ?<<EOF n p 1 ? ? wq 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
$ sql=$(cat <<EOF SELECT foo, bar FROM db WHERE foo=’baz’ EOF ) $ echo -e “$sql”
cat <<EOF > print.sh #!/bin/bash echo \$PWD echo $PWD EOF

查看内容

$ cat print.sh #!/bin/bash echo $PWD echo /home/user
$ cat <<EOF | grep ‘b’ | tee b.txt > foo > bar > baz > EOF bar baz $ cat b.txt bar baz
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 EOF内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Shell编程之/bin/bash和/bin/sh的区别浅析bash shell获取当前脚本的绝对路径(pwd/readlink)Linux系统中.bash_profile文件详解解决bash:/root/.bashrc:Permission denied的问题bash脚本如何监控cup/内存/磁盘使用率Bash脚本中括号和反引号的使用shell 脚本中常用的内置变量(Bash 内置变量)在Bash脚本中引入alias的方法