У меня есть очень простой скрипт bash с несколькими командами, выполняемыми последовательно. Вывод каждой команды перенаправляется в собственный файл журнала. Что-то вроде этого

(command --param a > sys.a.log 2>&1)
(command --param b > sys.b.log 2>&1)
(command --param c > sys.c.log 2>&1)

Теперь, когда я запускаю этот скрипт, он отлично запускается, но когда первая команда заканчивается (файл журнала показывает, что последняя строка программы выполнена), процесс не завершается. Я должен убить его вручную, прежде чем скрипт перейдет к следующей строке (и создаст sys.b.log).

Это то, как вы ожидаете, что этот скрипт будет вести себя (я не знаю много о bash), или это неожиданное поведение, и я должен искать проблему в другом месте. Если это имеет значение, фактическая команда - "java", с кучей параметров.

1 ответ1

0

Хорошая идея использовать ловушки выхода в ваших скриптах bash

Некоторые фрагменты: http://redsymbol.net/articles/bash-exit-traps/

Также ознакомьтесь с этой статьей о написании надежных сценариев оболочки и о том, на что нужно обратить внимание: http://www.davidpashley.com/articles/writing-robust-shell-scripts/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .