一、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文件,并在其中追加内容,打开test.txt,内容如下:
[root@localhost]# cat test.txt
my
name
is
Jim
3. 批量执行命令
利用EOF可以批量执行命令,在一些场景下能够提供很大便利,如:
- 查看数据库中的表数据
- 查看远程机器中的某个文件
举例:
(1)登录mysql数据库,查看csm库中的csm_user表数据,之后退出。
[root@localhost]# mysql -uroot -p123456 << EOF
>use csm;
>select * from csm_user;
>exit;
>EOF
(2)ssh远程连接主机,依次执行命令:解压包、进入目录、为文件赋予可执行权限。
[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中可以结合<<(标准输入)使用,表示后续的内容可以作为输入传输至<<前面的命令;EOF可以实现输出多行文本、创建文件并追加内容、批量执行命令等功能。