Linux cat EOF在shell脚本里面的使用详解
1、cat >file记录的是键盘输入,相当于从键盘创建文件,并且只能创建新文件,不能编辑已有文件。>是数据重导向,会将你输入的文本内容输出到file中。
[root@localhost ~]# cat >test.txt <<EOF
> hellow this is test
> EOF
[root@localhost ~]# cat test.txt
hellow this is test
2、cat <<EOF
cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的,EOF是"end of file",表示文本结束符。
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果
【范例1】 使用cat >> file <<EOF实现多行文件的输入到文件
[root@localhost ~]# cat >>test.txt<<EOF
> log_facility=daemon
> pid_file=/var/run/nrpe.pid
> server_port=5666
> nrpe_user=nagios
> nrpe_group=nagios
> allowed_hosts=127.0.0.1,nagios.xcar.com.cn,mon.xcar.com.cn
> dont_blame_nrpe=0
> debug=0
> command_timeout=60
> connection_timeout=300
> command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
> EOF
[root@localhost ~]# cat test.txt
hellow this is test
log_facility=daemon
pid_file=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1,nagios.xcar.com.cn,mon.xcar.com.cn
dont_blame_nrpe=0
debug=0
command_timeout=60
connection_timeout=300
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
【范例2】shell脚本使用cat > file <<EOF实现多行输出到文件
[root@localhost ~]# cat oracle_insatll.sh
#/bin/bsh
#This program configure the environment for oracle database
#2020-4-27
#########################################
rac1="rac1"
rac1_priv="rac1-priv"
rac1_vip="rac1-vip"
rac2="rac2"
rac2_priv="rac2-priv"
rac2_vip="rac2-vip"
cat >> /etc/host <<EOF
10.1.70.158 $rac1
10.1.70.161 $rac1_vip
11.1.1.1 $rac1_priv
10.1.70.159 $rac2
10.1.70.162 $rac2_vip
10.1.1.2 $rac2_priv
EOF
[root@localhost ~]# ./oracle_insatll.sh
[root@localhost ~]# cat /etc/host
10.1.70.158 rac1
10.1.70.161 rac1-vip
11.1.1.1 rac1-priv
10.1.70.159 rac2
10.1.70.162 rac2-vip
11.1.1.2 rac2-priv
目录 返回
首页