shell脚本中生成的spool文件没有执行的语句


#!/bin/bash
#start on 20151209
#auto_check.sh
#liming
#aim to do db check automatically

#usage:

su - oracle -c 'sqlplus -s / as sysdba'<< EOF   >>/u01/app/oracle/script_test_result/auto_check.log 2>1
set echo on
set feedback on
spool /home/oracle/script_test_result/auto_check.log
select * from lm.lm_t1;
spool off
exit
EOF

生成的spool文件auto_check.log里面,没有我执行的语句。这个怎么搞呀?
[root@single1 script_test_result]# more auto_check.log 

no rows selected

由于对一些命令的不熟悉,导致了我在这个问题上纠结了很久。后来查了许多资料,发现,其实不是set echo on 的问题,而是连接语句的问题。

sqlplus -s / as sysdba
中的-s,查了一下命令,我懂了。。
    -S             Sets silent mode which suppresses the display of
                   the SQL*Plus banner, prompts, and echoing of
                   commands.
果断将-s去掉,然后就恢复了。
[oracle@single1 script_test_result]$ cat auto_check.log 
SQL> select * from dual;
X

1 row selected.

SQL> spool off

相关内容