Стандартный вывод скрипта ловушки отбрасывается, но стандартная ошибка возвращается клиенту, по крайней мере, в последних версиях Subversion. Я думал, что так было некоторое время, но книга SVN 1.4 говорит, что вывод отбрасывается, поэтому вы можете проверить, что вы используете последнюю версию сервера - видя стандартную ошибку Поток - это хороший способ получить раннее предупреждение о распространенных типах ошибок.
Чтобы отправить вывод команды в файл и включить стандартный вывод ошибок в файл, чтобы сохранить все это в одном месте, выполните
command >/path/to/logfile 2>&1
Используйте >>
вместо >
для добавления в файл:
command >>/path/to/logfile 2>&1
Поскольку стандартный вывод ошибок отправляется обратно клиенту svn, вы также можете таким образом передавать информацию из стандартного вывода для одной команды,
command 1>&2
или для всего сценария, поставив
exec 1>&2
вверху скрипта.
С первого взгляда я вижу одну проблему с вашим скриптом: если предположить, что обратные кавычки в строке экспорта svn не являются артефактом разметки, вы должны удалить их. (Они выполнят команду экспорта, которую вы написали, а затем примут ее вывод и выполнят этот вывод как другую команду - почти наверняка не то, что вы хотели.)
if [[ "$CHANGED" =~ "trunk/somedir/somefile.zip" ]]
then
/usr/bin/svn export --non-interactive --trust-server-cert $SOURCE $DEST 1>&2
fi
(я не знал о синтаксисе двойных квадратных скобок в bash, для меня это новое открытие!)