Автоматизация bash-скрипта FFMPEG

У меня возникла небольшая проблема при попытке создать автоматический скрипт Bash, чтобы я мог легко конвертировать файлы webm в mp3. Кусок кода, который я использую

for FILE in *.webm; do
    echo -e "Processing video '\e[32m$FILE\e[0m'"
    ffmpeg -i "${FILE}" -acodec libmp3lame -aq 1 -y "${FILE%.webm}.mp3"
done

это прекрасно работает, если я набираю его в терминале и конвертирую все файлы в текущем каталоге, как я и прошу. Но это не совсем удобно для повседневных задач, так как я должен либо напечатать, либо скопировать и вставить все это, чтобы оно работало. Поэтому я открыл текстовый редактор и написал:

#!/bin/bash
for FILE in *.webm; do
    echo -e "Processing video '\e[32m$FILE\e[0m'"
    ffmpeg -i "${FILE}" -acodec libmp3lame -aq 1 -y "${FILE%.webm}.mp3"
done

и сохранил вывод как файл webmp3.sh.

После этого я установил его разрешения с помощью sudo chmod +x ./webmp3.sh и попытался выполнить это набрав ./webmp3.sh

Это не работает, и консоль возвращает это вместо:

./webmp3.sh: line 2: syntax error near unexpected token `$'do\r''
'/webmp3.sh: line 2: `for FILE in *.webm; do

Так что он работает при ручном вводе, но не при сценарии, что заставляет меня думать, что я не написал для него подходящий сценарий. Может ли кто-нибудь помочь мне с этим?

0 ответов

Другие вопросы по тегам