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
このタイプのリダイレクトは、単語のみを含む行(末尾の空白なし)が表示されるまで、現在のソースからの入力を読み取るようにシェルに指示します。その時点までに読み取られたすべての行は、コマンドの標準入力として使用されます。
このように呼んでください:
#!/bin/bash
sqlplus db/pass @script.sql
echo -e "text"
exit
.sqlファイルの最後にがあることを確認してください。