История изменений
Исправление legolegs, (текущая версия) :
eval
Никогда, блин, не используйте eval для ваших шеллскриптов. Наедитесь говна с кавычками.
/usr/local/bin/any2wav.sh:
#/bin/bash
while [ $# -gt 0 ]; do
ffmpeg -nostdin -loglevel quiet -i "$1" -y -ar 44100 "${1%.*}.wav"
shift
done
all2wav.sh:
find \( -iname \*.mp3 \
-or -iname \*.ogg \
\) -exec /usr/local/bin/any2wav.sh {} +
Всё.
В bash исполняемый код наиболее естественным образом организуется в исполняемые файлы (и в функции), а не в строки. И для сущности список файлов лучшим типом данных является argv. Как бонус, any2wav всегда можно переделать на многопоточный режим.
Исходная версия legolegs, :
eval
Никогда, блин, не используйте eval для ваших шеллскриптов. Наедитесь говна с кавычками.
/usr/local/bin/any2wav.sh:
#/bin/bash
while [ $# -gt 0 ]; do
ffmpeg -loglevel quiet -i "$1" -y -ar 44100 "${1%.*}.wav"
shift
done
all2wav.sh:
find \( -iname \*.mp3 \
-or -iname \*.ogg \
\) -exec /usr/local/bin/any2wav.sh {} +
Всё.
В bash исполняемый код наиболее естественным образом организуется в исполняемые файлы (и в функции), а не в строки. И для сущности список файлов лучшим типом данных является argv. Как бонус, any2wav всегда можно переделать на многопоточный режим.