У меня есть сценарий bash, который я использую целую вечность. Он имеет несколько строк, которые он только запускает/останавливает некоторые задания в базе данных. Это очень просто и никогда не терпит неудачу. В прошлом году, это факты в декабре, так что несколько дней назад :) Я перенес все данные на новую машину. И затем моя проблема начинается. Теперь скрипт работает так, как раньше, но теперь он возвращает предупреждение. Ниже выхода:Как скрыть предупреждение в скрипте 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
, но это не помогло :(
@ user3863616, исправить здесь синтаксис документа. Попробуйте [это] (https://gist.github.com/d2ccbe03143c350f5b11fe4dc1914e8e), например. –
Бинго, проблема решена ** ($ ** вместо ** '** спасибо! – user3863616