[ale] [Slightly OT] Help with a quick shell script?

fd0man™—The Magical Floppy Man fd0man at gmail.com
Wed Aug 16 10:13:26 EDT 2006


I cannot seem to figure this out.  I am attempting to write a small
shell script that I can use from within Nautilus to convert MP3 files to
Ogg Vorbis, with just a right-click.  However, I cannot get the thing to
work for paths/file names with spaces in them.  Since most people I know
name their files with spaces, it is a case that I would like to handle.
Here is the script as I currently have it:


files=$(echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | awk 'BEGIN { FS = "\n" } { printf "\"%s\" ", $1 } ' | sed -e s#\"\"##)

for mp3file in $files
 do
  echo "Processing file ${mp3file}?"
  file "$mp3file" | grep '(MP3)|(MPEG)' > /dev/null
  if [ $? -eq 0 ];
   then
    echo "Debug:  File is an MP3 file.  Going ahead with the conversion?";
    NewMusicFileName=`echo $mp3file | sed 's/\.mp3/\.ogg/g;'`
    TmpMusicFileName=`echo $mp3file | sed 's/\.mp3/\.ogg/g;'`
    mpg123 -w - "$mp3file" | oggenc - -o $NewMusicFileName
  fi
 done


GNOME (specifically, Nautilus) states that
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS is a newline-delimited list of paths
for the selected files int he window.  However, it seems that bash, when
using a for loop on the environment variable, do not break it apart by
lines, but instead by word.  Is there a way that anyone knows to take
the environment variable, and use each whole line of it within a
for-style loop like this?

The output that I am getting from this script at this time is:


fd0man at pepper:~/Downloads$ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS='/home/fd0man/Downloads/51 - Shakira - Hips dont lie ft Wyclef Jean.mp3' ogg_convert_test
Processing file "/home/fd0man/Downloads/51?
Processing file -?


Where it hangs on the second line until I press C-c or C-d.  If I press
C-d, it proceeds to go through the rest of the parts of the file name.
*shrugs*  It would be nice if there were a for variant that worked on
lines instead of words, but if there is, the man page isn?t telling me
about it?

    ? Mike

--
The fd0man??The Magical Floppy Man! (fd0man at gmail.com) 
"One world, one web, one program"  ?Microsoft promotional ad 
"Ein Volk, ein Reich, ein Fuehrer"  ?Adolf Hitler 
-------------- next part --------------
An HTML attachment was scrubbed...

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part




More information about the Ale mailing list