Синтаксическая ошибка в сценарии оболочки при вызове сценария sql - PullRequest
1 голос
/ 20 сентября 2011

Я пытаюсь выполнить следующую команду в командной строке:

nohup sqlplus  DB_ID/DB_PWD@DOMAIN @main.sql 490 >> result.out 2>>&1 &

main.sql - это скрипт sql, который принимает 490 в качестве аргумента.Я получаю сообщение об ошибке:

bash: syntax error near unexpected token `&'

Что не так с синтаксисом?

1 Ответ

3 голосов
/ 20 сентября 2011

Синтаксическая ошибка происходит из-за перенаправления STDERR в STDOUT.Требуемый (и единственный действительный) синтаксис 2>&1.Он все еще делает то, что вы ожидаете от него.>>, которое вы делаете в перенаправлении STDOUT, помогает только для реальных файлов и предотвращает удаление данных файла.Для перенаправления канала это не требуется и даже не допускается по синтаксису.

Окончательный правильный синтаксис:

nohup sqlplus  DB_ID/DB_PWD@DOMAIN @main.sql 490 >> result.out 2>&1 &
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...