一、EOF的作用:
- shell中的EOF表示文件終止符號
- EOF通常與<<(標準輸入)結合使用,表示后續的內容被當作標準輸入傳給<<前面的命令,直到再次遇到EOF為止,再返回到主調shell
- EOF的名稱不是固定的,可以自定義(任意字符串)
注:結束EOF前不能有其他字符、制表符、空格等
二、EOF的應用:
- 輸出多行文本
通常配合cat使用,如:
[root@localhost]# cat << EOF
>my
>name
>is
>Jim
>EOF
以上輸出:
my
name
is
Jim
- 配合cat命令創建文件并追加內容
[root@localhost]# cat > test.txt << EOF
>my
>name
>is
>Jim
>EOF
創建test.txt文件,并在(zai)其(qi)中追加內(nei)容,打開test.txt,內(nei)容如下:
[root@localhost]# cat test.txt
my
name
is
Jim
3. 批量執行命令
利用EOF可(ke)以批量(liang)執行命令,在一(yi)些場(chang)景(jing)下能夠提供很大便利,如:
- 查看數據庫中的表數據
- 查看遠程機器中的某個文件
舉例:
(1)登錄mysql數據庫,查看csm庫中的csm_user表數據,之后退出。
[root@localhost]# mysql -uroot -p123456 << EOF
>use csm;
>select * from csm_user;
>exit;
>EOF
(2)ssh遠程(cheng)連接主機,依次執(zhi)行命令:解(jie)壓包、進入(ru)目錄(lu)、為文件(jian)賦予可(ke)執(zhi)行權(quan)限。
[root@localhost]# ssh -p10000 secure@192.168.56.16 << EOF
>sudo tar -zxvf ~/caiyunjian_frp.tar.gz -C /opt
>cd /opt/caiyunjian_frp
>sudo chmod +x frpc
>EOF
三、總結:
EOF在shell中可以(yi)結合(he)<<(標準輸(shu)入)使用,表示(shi)后續的內容可以(yi)作為輸(shu)入傳(chuan)輸(shu)至<<前面的命令(ling);EOF可以(yi)實現輸(shu)出多行文本、創建文件并追加內容、批(pi)量執行命令(ling)等(deng)功能。