Ответ 1
Синтаксис, который вы используете, работает в bash, а не в csh/tcsh. Попробуйте изменить первую строку вашего представления script на
#!/bin/bash
Я использую библиотеку, которая генерирует целую тонну вывода в stderr (и действительно нет способа подавить вывод непосредственно в коде, это минимизатор ROOT Minuit2, который известен тем, что не имеет способа подавить вывод). Я запускаю пакетные задания через систему LSF, и файлы вывода ошибок настолько велики, что они превышают мою квоту диска. Эрк.
Когда я запускаю локально на оболочке, я делаю:
python main.py 2> >( grep -v Minuit2 2>&1 )
для подавления вывода, как это делается здесь. Это отлично работает, но, к сожалению, я не могу понять, что это или какие-то варианты его работы при работе в LSF. Я думаю, это связано с тем, что LSF не порождает необходимую подоболочку, но это не понятно.
Я запускаю пакет, передавая LSF a submit script. Соответствующая строка:
python main.py $INPUT_FILE
который отлично работает, помимо вышеупомянутой проблемы с гигантскими файлами ошибок.
Когда я попытаюсь изменить эту строку на
python main.py $INPUT_FILE 2> >( grep -v Minuit2 2>&1 )
В конечном итоге
./singleSubmit.sh: line 16: syntax error near unexpected token `>'
./singleSubmit.sh: line 16: `python $MAIN $1 2> >( grep -v Minuit2 2>&1 )'
в файле журнала ошибок.
Любая идея, как я могу выполнить то, что хочу, или почему это не работает?
Спасибо, тонна!
Синтаксис, который вы используете, работает в bash, а не в csh/tcsh. Попробуйте изменить первую строку вашего представления script на
#!/bin/bash