概述
在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
本文介绍了Shell脚本中EOF(EndofFile)的用法,包括作为文本分隔符,传递SQL查询给sqlplus,以及如何保存输出和使用EOF打印变量值。还展示了如何在bash脚本中运用rman备份的例子。
2689

被折叠的 条评论
为什么被折叠?



