shell脚本中的EOF是什么
概述
在Shell脚本中,EOF(End of File)是一个特殊标记,用于指示一段文本的开始和结束位置。但它并不是Shell脚本中的关键字或保留字。您可以自由选择EOF之前的标记,只需确保开始和结束标记匹配即可。基本上<<EOF告诉 shell 您将输入多行字符串,直到“标记” EOF。您可以根据需要命名此标签,通常是EOF或STOP。
EOF 参数示例
sqlplus / as sysdba << EOF select name, open_mode from v$database; archive log list; EOF
sqlplus 命令将启动 sqlplus,但现在我们需要传递 Linux 解释器无法理解的 sql 查询。<< EOF参数将把 sql 查询作为用户输入直接传递到 sql 提示符。
这样做直到遇到相同的EOF参数。需要遵循的一些规则:
-
标签可以是任何字符串,大写或小写,尽管大多数人按照惯例使用大写
-
如果该行中有其他单词,则该标签将不会被视为此处标签。在这种情况下,它将仅被视为字符串的一部分。标签本身应位于单独的行上,才能被视为标签
-
标记在该行中不应有前导或尾随空格才能被视为标记。否则它将被视为字符串的一部分
保存 EOF 输出
您可以将 EOF 输出保存到另一个文件
sqlplus / as sysdba << EOF > output.log select name, open_mode from v$database; archive log list; EOF
EOF 示例
使用 EOF 打印变量值
a=10 cat << EOF $a EOF
通过 shell 脚本运行 rman 备份
cat << EOF > print.sh #!/bin/bash echo \$PWD echo $PWD EOF
喜欢请赞赏一下啦^_^
微信赞赏

支付宝赞赏

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步