Bash-cкрипт пакетного кодирования *.wav в *.mp3 c помощью LAME

MP3-энкодер LAME по патентным соображениям не входит в состав некоторых дистрибутивов Linux, для Debian например его можно скачать с сайта Debian Unofficial. Почему-то закодировать все файлы в каталоге командой lame *.wav не удалось и пришлось написать скриптик:

#!/bin/bash
for i in *.wav
do
  b="`basename "$i" .wav`"
  lame --preset standard "$b".wav "$b".mp3
done
Блог: RU Linux

Любой программист (коими являются пользователи GNU/Linux) умеет применять циклы на практике и про такие тривиальные задачи знает. Хотя новичку (а они, благодаря популяризации, среди пользователей Linux появились) это может показать, что шелл это не только способ запустить какое-нибудь иксовое приложение. Под виндой шелл тоже умеет циклы и прочие базовые фичи любого интерпретатора, но он там настолько неудобен, что этим мало кто пользуется, а новички вобще про него незнают).

В этом конкретном случае цикл помоему у меня появился по неопытности, а юниксвей решения такой задачи -- перенаправление ввода-вывода всяких простых утилит, типа

find . -name '*.wav' -print0 | xargs -print0 lame --preset standard

Только этот комбайн я до конца не довел, с обработкой пробелов в именах файлов были проблемы.

for f in *.wav; do lame --preset standard "${f}" "${f%wav}mp3"; done

Красота :)