Используя “&&\” не является эффективным для ЗАВИХРЕНИЯ, отправляют, форма (не выполняйте вторую строку, если первая строка перестала работать),

В то время как я не знаю конкретно, были ли дополнительные опции необходимы для устранения проблемы, которую Вы упоминаете, ffmpeg

полное, межплатформенное решение записать, преобразуйте и потоковое аудио и видео.

Это - швейцарский нож для аудио и видео. Перекодирование Ваших файлов должно быть столь же легким как

$ ffmpeg -i oldfile.mp3 newfile.mp3

ffmpeg находится в репозиториях большинства основных дистрибутивов, или это может быть загружено с их веб-сайта.

2
05.10.2011, 08:27
2 ответа

curl понятия не имеет, что это перестало работать - это имело четко определенный вход, это связалось с сервером и возвратило a 200 OK ответ. Из-за этого Вы не можете полагаться на код выхода curl (который является что && делает).

Вместо этого мы должны использовать что-то еще для определения успешности или неуспешности, такой как вывод, сгенерированный curl.

Как примечание стороны, это обычно - не хорошая идея использовать ls в сценарии. Здесь, это перестанет работать, если файл, окажется, будет иметь новую строку или пробел. Это может быть маловероятно, но но это возможно. Дополнительную информацию см. в http://mywiki.wooledge.org/ParsingLs. Как показывает опыт, я только использую ls в сценариях при отображении результатов для человеческих глаз. Если я обрабатываю результаты всегда, я использую find . -0 ...

3
27.01.2020, 22:01

&& и || (поскольку успех/сбой тестирует), должен быть на той же логической строке как команда (команды), Вы хотите быть выполненными. Используйте продолжение строки && \ и/или фигурные скобки { }

Примечание: Как указано amphetamachine, проблема продолжения строки не применяется в современных оболочках sh-compatible

true && echo "true"

true && \
   echo "true"

true && \
{  echo "true"; echo "===="; }

(( 123 == 123 )) && {
   echo "true"
   echo "====" 
}
1
27.01.2020, 22:01
  • 1
    В современных оболочках sh-compatible, && и || не нужна обратная косая черта в конце, поскольку их считают заканчивающими оператор метками как ; и &. Код Shell в make-файлах не может сделать этого, как бы то ни было. –  amphetamachine 05.10.2011, 08:14
  • 2
    @amphetamachine: Да, я просто протестировал его, и это верно.спасибо... Как насчет этого! Это делает вещи немного легче для общих сценариев, но они делают мой ответ несколько бесполезным для вопроса :(... но потому что они действительно работают, который, кажется, подразумевает, что завихрение возвращает ненулевой код выхода –  Peter.O 05.10.2011, 08:20

Теги

Похожие вопросы