我在shell脚本中使用sqlplus并且它可以工作(没有静默模式的sqlplus)但是我可以在终端中看到输出 . 我尝试以不同的组合在静音模式下运行它,但它不起作用 -
sqlplus -s“$ DBUSER / $ DBPWD @(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(Host = $ DBHOST)(Port = $ DBPORT))(CONNECT_DATA =(SID = $ DBSID)))”@ $ SCRHOME / getCsv $ sqlFile.sql
它工作,但我可以在控制台上看到输出 . 我也尝试过:
sqlplus \-s "....
sqlplus \-s \ "...
sqplus -S
sqlplus -s \ << EOF "...
我尝试删除双引号,但在那种情况下,即使sqlplus命令也不起作用 . 我在shell脚本中使用此命令 .
2 回答
正确的格式是:
“静音”模式不会阻止终端输出 . 它所做的就是:
如果要抑制所有终端输出,那么您需要执行以下操作:
sqlplus ... > /dev/null 2>&1
如果要抑制终端输出,可以在SQLPlus脚本中使用
spool
并将终端输出转移到/ dev / null . 我是这样做的:首先是SQLPlus:
假设它放在文件
$HOME/my.sql
中 . 这可以在bash脚本中调用,如下所示:查询的输出将发送到
${HOME}/output.dat
,并且没有SQLPlus输出将转到您的终端(或者在我的情况下是日志文件) .