linux中EOF的用法梳理mysql
在linux運維工做中,咱們會碰到這樣一個場景:linux
執行腳本的時候,須要往一個文件裏自動輸入N行內容。若是是少數幾行,能夠使用echo進行追加,若是是多行內容,再用echo追加就不合適了。sql
這個時候就能夠使用EOF結合cat進行內容的追加了。shell
下面對EOF的用法進行梳理:vim
EOF是END OF FILE的縮寫,表示自定義終止符。既然是自定義,那麼EOF就不是固定的,能夠隨意設置別名,在Linux中按ctrl+d就能夠表明EOF。bash
其用法以下:運維
<<EOF //開始
....
EOF //結束socket
還能夠自定義:linux運維
<<BBB //開始
....
BBB //結束spa
經過cat配合重定向並追加操做,在這以前先熟悉幾個符號:
< :輸入重定向
> :輸出重定向
>> :輸出重定向,進行追加,不會覆蓋以前內容
<< :標準輸入來自命令行的一對分隔號的中間內容.
下面經過具體事例來感覺下EOF用法的妙處:
[tianqi@tianqi-01 shell]$ cat << EOF > test.sh
> 123456
> 456789
> adgcdg
> EOF
[tianqi@tianqi-01 shell]$ cat test.sh
123456
456789
adgcdg
[tianqi@tianqi-01 shell]$
[tianqi@tianqi-01 shell]$ cat << EOF >> test.sh
> 777
> 888
> EOF
[tianqi@tianqi-01 shell]$ cat test.sh
123456
456789
adgcdg
777
888
[tianqi@tianqi-01 shell]$
[tianqi@tianqi-01 shell]$ cat << EOF > test.sh
> 5555
> EOF
[tianqi@tianqi-01 shell]$ cat test.sh
5555
[tianqi@tianqi-01 shell]$
[tianqi@tianqi-01 shell]$ cat << tian > example.txt
> aaa
> bbb
> 333
> tian
[tianqi@tianqi-01 shell]$ cat example.txt
aaa
bbb
333
[tianqi@tianqi-01 shell]$
[tianqi@tianqi-01 shell]$ touch my.cnf
[tianqi@tianqi-01 shell]$ vim test.sh
#!/bin/bash
cat > /home/tianqi/shell/my.cnf << EOF
/home/tianqi/shell/my.cnf
[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
[tianqi@tianqi-01 shell]$ cat /home/tianqi/shell/my.cnf
/home/tianqi/shell/my.cnf
[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 [tianqi@tianqi-01 shell]$