Символы <
и >
имеют особое значение в bash. Вы использовали их в
echo "set heading off;" > $LOG/busDtSel.sql
, чтобы перенаправить вывод эха на $LOG/busDtSel.sql
.
В своей строке 53 вы делаете:
$JAVA_HOME/bin/java my.com.eprotea.report.JRGenerator options -P<BUS-DATE:$busDt>
Это означает, что последним аргументом для JRGenerator
является -P
, что stdin происходит из файла BUS-DATE:$busDt
, и что stdout ни к чему не приводит. Есть новая строка. Это неожиданно для bash, потому что он ожидал назначения для stdout. Отсюда и сообщение об ошибке.
Решение заключается в использовании кавычек:
$JAVA_HOME/bin/java my.com.eprotea.report.JRGenerator options "-P<BUS-DATE:$busDt>"
Есть и другие проблемы в вашем скрипте; например: есть строка с:
echo ************************************"
что, очевидно, должно быть:
echo "************************************"
Я думаю, что это может быть ошибкой при вводе сценария в вопрос, потому что это выдает мне другое сообщение об ошибке.