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的作用一樣

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM