Shell脚本在SQL代码之后停止

时间:2013-03-05 14:30:08

标签: sql sh

我的代码总是在ENDOFSQL之后停止; 如何解决此问题并打印最后一个回声?

#!/bin/bash

sqlplus db/pass << ENDOFSQL

@script.sql

exit;   
ENDOFSQL;

echo -e "text"

2 个答案:

答案 0 :(得分:2)

您必须删除;末尾的分号ENDOFSQL;。否则,您的here文档将延伸到文件末尾,ENDOFSQL;echo是此处文档的一部分

#!/bin/bash

sqlplus db/pass << ENDOFSQL

@script.sql

exit;   
ENDOFSQL

echo -e "text"

有关详细信息,请参阅Here Documents

  

here-documents的格式为:

<<[-]word
        here-document
delimiter
     

这种重定向指示shell从当前源读取输入,直到看到只包含单词(没有尾随空白)的行。然后,读取到该点的所有行都将用作命令的标准输入。

答案 1 :(得分:0)

这样称呼:

#!/bin/bash

sqlplus db/pass @script.sql
echo -e "text"

确保.sql文件末尾有exit