Продолжая тему башоскриптования.
Я внезапно вспомнил, что неплохо бы ограничивать время выполнения своего скрипта во избежание подвисания. При работе через CGI этот момент может отслеживать веб-сервер. Но в моём случае приходится всё делать самому, ручками. Поэтому пришлось прикрутить примитивный watchdog.
Первую функцию вызываем где-нибудь в самом начале основного скрипта, вторую — всякий раз перед тем как сделать "exit 0". Логика простая: кто из двух процессов ("основной" скрипт либо "sleep 5") первым завершится без ошибки, тот и "прибьёт" своего соседа посылкой ему SIGTERM.
А ещё я внезапно осознал, что в функции upload-а можно обойтись и без создания промежуточного временного файла, примерно вот таким макаром
Но так неудобно отслеживать код возврата из sox-а, поэтому в "боевом" скрипте я оставил всё так, как было.
А вообще, я тут наткнулся на один очень интересный блог. В частности, один из разделов там посвящён целиком bash-у и всяким его премудростям. Всем баширующим mustread, ящетаю.