我的代码总是在 ENDOFSQL 之后停止;如何解决此问题并打印最后一个回声?
#!/bin/bash
sqlplus db/pass << ENDOFSQL
@script.sql
exit;
ENDOFSQL;
echo -e "text"
您必须删除;
末尾的分号ENDOFSQL;
。否则,您的此处文档将延伸到文件末尾,ENDOFSQL;
并且echo
是此处文档的一部分
#!/bin/bash
sqlplus db/pass << ENDOFSQL
@script.sql
exit;
ENDOFSQL
echo -e "text"
详情见Here Documents
_
这里文档的格式是:
<<[-]word here-document delimiter
这种类型的重定向指示 shell 从当前源读取输入,直到看到只包含单词(没有尾随空格)的行。然后将所有读取到该点的行用作命令的标准输入。
像这样称呼它:
#!/bin/bash
sqlplus db/pass @script.sql
echo -e "text"
确保您exit
的 .sql 文件末尾有 。