解密Shell脚本中的EOF:编写高效、可读性强的代码!

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

概述

在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值