cat 和 EOF的配合使用

在shell中经常看到下面这样的cat和eof的搭配使用的例子:

cat > workers.txt << EOF
{{ work01_hostname }} {{ work01_ip }}
{{ work01_hostname }} {{ work01_ip }}
EOF

cat > generate-kubelet-certificate.sh << EOF
IFS=$'\n'
for line in `cat workers.txt`; do
 
instance=`echo $line | awk '{print $1}'`
INTERNAL_IP=`echo $line | awk '{print $2}'`
EOF

今天来学习下这种用法:

cat > 文件名 << EOF

1

2

3

EOF

解释如下:

首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。

1. cat<<EOF,表示以EOF输入字符为标准输入结束

[root@sql ~]# cat << eof
> 123
> 345
> 456
> eof
123
345
456
[root@sql ~]# cat << ooo
> 123
> 1231
> 123123
> ooo
123
1231
123123
[root@sql ~]# 

2. cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束

[root@sql ~]# cat > 1.txt
123
123
123
123
[root@sql ~]# cat 1.txt 
123
123
123
123
[root@sql ~]# 

3. cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样

扫描二维码关注公众号,回复: 11241674 查看本文章
[root@sql ~]# cat > 1.txt << eof
> 123
> 123
> 123
> 444
> eof
[root@sql ~]# cat 1.txt 
123
123
123
444
[root@sql ~]# 

猜你喜欢

转载自www.cnblogs.com/shanghai1918/p/12930430.html