【问题标题】:How to stop console output如何停止控制台输出
【发布时间】:2019-07-30 06:38:58
【问题描述】:

我有一个脚本,输出出现在控制台上,它应该只在输出文件中,这是脚本中的 sql 查询头:

sqlplus -s ${connString} <<EOF &

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
SET LINESIZE 1024
SET TRIMSPOOL ON
WHENEVER SQLERROR EXIT FAILURE
SPOOL $logdir/Report_$YYYYMMDD.txt

sql查询

SPOOL OFF
EOF

【问题讨论】:

  • 我想你可能会关注set termout off
  • set termout off 没有用,但 J. Schübel 的回答很有魅力,非常感谢

标签: bash oracle sqlplus


【解决方案1】:

您需要将sqlplus 的输出重定向到一个文件。您可以通过将&gt;&gt;filename.log 添加到您的第一行来做到这一点,如下所示:

sqlplus -s ${connString}  <<EOF >filename.log

第一行中的&amp; 是语法错误。

如果您只需要一个输出文件,则不需要spool,因此您的脚本将如下所示:

OUTFILE="Report_$(date '+%Y%m%d').txt"
sqlplus -s ${connString} <<EOF >|"$OUTFILE"

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
SET LINESIZE 1024
SET TRIMSPOOL ON
WHENEVER SQLERROR EXIT FAILURE

--query

EOF

【讨论】:

    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 2018-03-09
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多