> There are a couple of easy ways to do this. To do it using your script, > this would do it (assuming your script is called "mp32wav"): > > cd /path/to/mp3s/ > for i in `ls -1 *.mp3`; do mp32wav $i $i.wav; done Ummm ... not quite. Forget the backtick command evaluation, and the "ls -l". Assuming the syntax is right for mp32wav, it would be simply for i in *.mp3; do mp32wav $i $i.wav; done On the other hand, on each iteration $i becomes set to something.mp3, meaning that the second argument to mp32wav becomes something.mp3.wav, which I don't think is really what you want either. So you might try something more like this as the guts of your script: for i in *.mp3 do j=`basename $i .mp3` mp32wav $i $j.wav done -- Lynn David Newton Phoenix, AZ