私は年齢のために使ってきたbashスクリプトを持っています。それは、データベース内のいくつかのジョブを開始/停止するだけの行がいくつかあります。それは非常に簡単で、決して失敗しません。昨年12月の事実は数日前です:)私は新しいデータに全データを移行しました。そして、私の問題が始まります。 スクリプトは以前と同じように動作しますが、警告を返します。出力の下には:bashスクリプトで警告を非表示にする方法
[[email protected] ~]$ ./batch.sh stop
./batch.sh: line 87: warning: here-document at line 85 delimited by end-of-file (wanted `!')
./batch.sh: line 87: warning: here-document at line 85 delimited by end-of-file (wanted `!')
Batch_Executer_1 [NOT OK]
Batch_Executer_2 [NOT OK]
[[email protected] ~]$
警告に記載されたコードの一部は次のとおりです。
batch_stop()
{
for BATCH in $BATCHES
do
SQLRES=`sqlplus -S "/ as sysdba" << !
exec dbms_scheduler.disable('"AIT"."${BATCH}"', TRUE);
` << line 87
done
}
そこで問題は、この警告を非表示/回避する方法です。それは重要ではありませんが、スクリプトは機能していますが、警告の邪魔になることはありません。私はbashバージョン3.2.25が出る前にそれを見ていますが、今はbash 4.1.2です。
私は変更私のコードにしようとした出力をリダイレクト:
{SQLRES=`sqlplus -S "/ as sysdba" << !
exec dbms_scheduler.disable('"AIT"."${BATCH}"', TRUE);
` } 2>/dev/null
が、それは警告が無効here document構文によって引き起こされる:(
@ user3863616ここでは、ドキュメントの構文を修正します。たとえば、[this](https://gist.github.com/d2ccbe03143c350f5b11fe4dc1914e8e)を試してみてください。 –
ビンゴ、問題解決**(** ** **の代わりに** ** **ありがとう! – user3863616