В то время как я не знаю конкретно, были ли дополнительные опции необходимы для устранения проблемы, которую Вы упоминаете, ffmpeg
полное, межплатформенное решение записать, преобразуйте и потоковое аудио и видео.
Это - швейцарский нож для аудио и видео. Перекодирование Ваших файлов должно быть столь же легким как
$ ffmpeg -i oldfile.mp3 newfile.mp3
ffmpeg
находится в репозиториях большинства основных дистрибутивов, или это может быть загружено с их веб-сайта.
curl
понятия не имеет, что это перестало работать - это имело четко определенный вход, это связалось с сервером и возвратило a 200 OK
ответ. Из-за этого Вы не можете полагаться на код выхода curl
(который является что &&
делает).
Вместо этого мы должны использовать что-то еще для определения успешности или неуспешности, такой как вывод, сгенерированный curl
.
Как примечание стороны, это обычно - не хорошая идея использовать ls
в сценарии. Здесь, это перестанет работать, если файл, окажется, будет иметь новую строку или пробел. Это может быть маловероятно, но но это возможно. Дополнительную информацию см. в http://mywiki.wooledge.org/ParsingLs. Как показывает опыт, я только использую ls
в сценариях при отображении результатов для человеческих глаз. Если я обрабатываю результаты всегда, я использую find . -0 ...
&&
и ||
(поскольку успех/сбой тестирует), должен быть на той же логической строке как команда (команды), Вы хотите быть выполненными. Используйте продолжение строки && \
и/или фигурные скобки { }
Примечание: Как указано amphetamachine, проблема продолжения строки не применяется в современных оболочках sh-compatible
true && echo "true"
true && \
echo "true"
true && \
{ echo "true"; echo "===="; }
(( 123 == 123 )) && {
echo "true"
echo "===="
}
&&
и ||
не нужна обратная косая черта в конце, поскольку их считают заканчивающими оператор метками как ;
и &
. Код Shell в make-файлах не может сделать этого, как бы то ни было.
– amphetamachine
05.10.2011, 08:14