在linux脚本中可以使用oracle中spool,把sql的执行结果保存到文件中;若是想让脚本在运行过程中,不在屏幕上显示执行结果;则可以将标准输出和错误输出重定向到/dev/null,即丢弃标准输出和错误输出。如下:
#!/bin/bash
checkUser=`cat /etc/passwd | grep -w "oracle"`
if [ -n "$checkUser" ];then
su - oracle -c "sqlplus / as sysdba"<<EOF >/dev/null 2>&1 #>/dev/null 2>&1保证了在执行脚本的时候不产生任何屏幕输出
spool /tmp/abc.txt
set linesize 300;
set pagesize 60;
set feedback off;
select * from v\$version;
spool off;
exit;
EOF
else
echo "Oracle用户不存在"
fi