我的代码总是在ENDOFSQL之后停止; 如何解决此问题并打印最后一个回声?
#!/bin/bash
sqlplus db/pass << ENDOFSQL
@script.sql
exit;
ENDOFSQL;
echo -e "text"
答案 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
。