歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

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
Copyright © Linux教程網 All Rights Reserved