Art Alexion on 5 Nov 2005 19:28:13 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] bash script help


Paul L. Snyder wrote:

>Quoting Art Alexion <art.alexion@verizon.net>:
>
>  
>
>>I have a script that used to work called prepend.filename.  It consists
>>of
>>
>>#!/bin/bash
>>
>>for file in ${2}
>>do
>>mv -v $file ${1}$file
>>done
>>
>>
>>I used to be able to run it like this
>>
>>prepend.filename Chipmunks- *.mp3
>>
>>and it would prepend Chipmunks- to every mp3 file in the current working
>>directory.  Now strangely, it works on one file, then exits.  Run it
>>again and it works on the next file and exits again.  What went wrong?
>>    
>>
>
>What's happening is that the shell is performing filename expansion
>before your script is executed.  
>
<snip>

>
>If you change ${2} to ${1} in the script and quote your glob argument on
>the command-line, it should fix the problem:
>
>
>  
>
<snip>

>As a further option, you could change ${2} to ${*}, which will expand
>to all of the command-line arguments.  Then you will only need to quote
>your glob if any of the filenames have spaces.  This would require a
>couple more changes to your script, to move $1 out of the way:
>
> #!/bin/bash
> PREFIX=${1}
> shift
> for file in ${*}
> do
>   mv -v ${file} ${PREFIX}$file
> done
>
>
>  
>
Thanks, Paul.  Worked fine.  Now I have to figure out *why* it worked,
that is, why it knew that {*} was the second argument, and why I needed
to assign the variable PREFIX to ${1}.


-- 

_______________________________________
Art Alexion
Arthur S. Alexion LLC

PGP fingerprint: 52A4 B10C AA73 096F A661  92D2 3B65 8EAC ACC5 BA7A
The attachment -- signature.asc -- is my electronic signature; no need for alarm.
Info @ http://mysite.verizon.net/art.alexion/encryption/signature.asc.what.html

Key for signed PDFs available at
http://mysite.verizon.net/art.alexion/encryption/ArthurSAlexion.p7c
The validation string is TTJY-ZILJ-BJJG.
________________________________________

Attachment: signature.asc
Description: OpenPGP digital signature

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug