[clug] Help with bash script
Hal Ashburner
hal.ashburner at gmail.com
Sat Nov 1 10:09:09 GMT 2008
Brett Worth said:
=>Alastair D'Silva wrote:
=>>> Well one thing to do as a start is this: (to take care of spaces).
=>>>
=>>> mv "${file}" ${i}
=>>
=>> Not quite everything you need . . . the for loop will still get tripped up
=>> on spaces. Shell expansion will expand the wildcard into a space separated
=>> list of files, which for will then split on spaces.
=>
=>Not my bash:
=>
=>[dart] touch a
=>[dart] touch "b b"
=>[dart] touch "c c c"
=>[dart] for F in *
=>> do
=>> ls -l "$F"
=>> done
=>-rw-r--r-- 1 brettw users 0 2008-11-01 20:52 a
=>-rw-r--r-- 1 brettw users 0 2008-11-01 20:52 b b
=>-rw-r--r-- 1 brettw users 0 2008-11-01 20:53 c c c
Yep, but if you're me and you're a bit soft in the head you think bash* will
be consistent:
for F in $(ls); do echo "$F"; done
a
b
b
c
c
c
prompt $
But you forget that's what it's going to do so can't see the massive bug in
the middle of a script where you want this stuff to work every time.
--
For my birthday I got a humidifier and a de-humidifier... I put them in
the same room and let them fight it out.
-- Steven Wright
More information about the linux
mailing list