如何停止控制台输出

How to stop console output

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

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

您需要将 sqlplus 的输出重定向到一个文件。您可以通过将 >>filename.log 添加到您的第一行来执行此操作,如下所示:

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

你第一行的 & 是一个语法错误。

如果您只需要一个输出文件,则不需要 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