【CentOS】EOF使用
生活随笔
收集整理的这篇文章主要介绍了
【CentOS】EOF使用
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
前言
- 本文的脚本在CentOS7中已测试
介绍
EOF是END Of File的缩写,表示自定义终止符。在linux按ctrl-d就代表EOF。
Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。
用途
编写自动执行的脚本时很有用。比如,自动执行的mysql脚本,自动执行的sftp、ftp脚本等。
注意事项
- 格式为:
比如这样
shell> ftp<<EOF exit EOF- 第1个EOF的后一行开始 到 第2个EOF的前一行结束,之间为EOFd内容可以自动输入。
- 第1个EOF的同一行中,在EOF后面还可以有其它的命令,且不作为EOF内容。
- 第2个EOF必须自己独占一行,且EOF前后不能有任何东西。
- EOF不是关键字,可以随便改,比如可以改成HELLO、!、…
- <<是关键字,不能修改
- EOF不是万能的。当命令不支持EOF时,那就需要换用另外的办法。比如mysql的密码输入,就不支持EOF(mysql的高版本中,已经不能把密码作为mysql命令的参数了)。
示例1
模拟输入ftp命令。人工输入时,是这样的
shell> ftp # 这里已经切换到了ftp命令下 ftp> exit shell>如果需要shell脚本在ftp命令下输入exit命令,则需要搭配EOF使用。如下:
shell> ftp<<EOF exit EOF shell>上面这段儿的执行效果与上上面的那段儿执行效果一致。但,上面这段已经省去了人工输入exit命令。
示例2
将内容Hello World写到a.txt中:
shell> cat <<EOF >a.txt Hello World EOF shell> cat a.txt Hello World示例3
还可以使用命令替换:
shell> cat <<EOF >a.txt today is `date` i am in dir `pwd` I can read numbers `for i in $(seq 1 10) do echo $i; done` EOF shell> cat a.txt today is Tue Mar 16 10:44:44 CST 2021 i am in dir /root I can read numbers 1 2 3 4 5 6 7 8 9 10参考
Linux shell 中()‘‘,() ` `,()‘‘,{},$[] $(()),[ ] (( )) [[ ]]作用与区别
bash之命令替换(command substitution)
Linux中的文件分界符EOF
linux下EOF写法梳理
Shell中重定向<<EOF注意事项
总结
以上是生活随笔为你收集整理的【CentOS】EOF使用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 野韭菜花的功效与作用、禁忌和食用方法
- 下一篇: 【maven插件】maven-resou