Bash?EOF的使用小結(jié)
EOF適用場(chǎng)景:
- 命令行多行輸出
- 腳本包裝
- 類(lèi)型配置文件
1. 命令行輸出
$ cat << EOF > Hello > EOF Hello
2. 寫(xiě)入文本
cat << EOF >1.txt 111 222 333 EOF
復(fù)制終端是這樣的。
cat << EOF >1.txt > 111 > 222 > 333 > EOF
回車(chē)后
$ cat 1.txt 111 222 333
3. 追加文本
cat << EOF >> 1.txt 444 555 666 EOF
查看1.txt內(nèi)容
$ 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
追加內(nèi)容
cat >> 1.txt <<EOF abc def ghi EOF
查看內(nèi)容
$ 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.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
7.2 新建分區(qū)并掛載
$ 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
7.3 設(shè)置變量
$ 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
查看內(nèi)容
$ 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?
到此這篇關(guān)于Bash EOF的使用小結(jié)的文章就介紹到這了,更多相關(guān)Bash EOF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Linux 二進(jìn)制包安裝MySQL的一些問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談Linux 二進(jìn)制包安裝MySQL的一些問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
nagios 分發(fā)文件實(shí)現(xiàn)代碼
這篇文章主要介紹了nagios 分發(fā)文件實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-09-09
shell腳本將Oracle服務(wù)器中數(shù)據(jù)定時(shí)增量刷新到ftp服務(wù)器中
這篇文章主要介紹了shell腳本將Oracle服務(wù)器中數(shù)據(jù)定時(shí)增量刷新到ftp服務(wù)器中,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-08-08
Shell腳本實(shí)現(xiàn)上傳zip壓縮文件到FTP服務(wù)器
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)上傳zip壓縮文件到FTP服務(wù)器,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-12-12
linux下數(shù)據(jù)壓縮的幾種方法與查看方式(示例代碼)
這篇文章主要介紹了linux下數(shù)據(jù)壓縮的幾種方法與查看方式,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
使用命令行將json數(shù)據(jù)導(dǎo)出到csv(一行命令搞定)
這篇文章主要為大家介紹了使用命令行將json數(shù)據(jù)導(dǎo)出到csv,一行命令搞定的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Linux makefile 和shell文件相互調(diào)用實(shí)例詳解
這篇文章主要介紹了Linux makefile 和shell文件相互調(diào)用實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03
linux shell之控制臺(tái)打印各種顏色字體和背景的實(shí)現(xiàn)方法
今天小編就為大家分享一篇關(guān)于linux shell之控制臺(tái)打印各種顏色字體和背景的實(shí)現(xiàn)方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04

