[ILUG] Re: script handling filenames with spaces
Brian Foster
blf at utvinternet.ie
Sun Aug 19 00:39:01 IST 2007
| From: Marcus Furlong <furlongm at hotmail.com>
| Date: Sat, 18 Aug 2007 22:05:07 +0100
|[ ... ]
| Maybe try setting IFS to be just <newline> instead of <space>,
| <tab> and <newline>? Add this to the start of your script.
|
| IFS="
| "
|
| That should handle the spaces anyway, not sure how to best go
| about odd characters.
since the OP is (probably) using the GNU bash(1)
shell, a (possibly) easier to understand version
of the above would be to use the (rare) $'...'
syntax, which supports C-style escapes. e.g.,
to set IFS to be just a newline:
IFS=$'\n'
without testing, it looks like with one additional
fix the OP's script would handle any odd character
(except, with this suggestion (or the tempfile or
the pipe-equivalent), newline). the OP's line:
mb2md -s "$j" -d "$MAILDIR$i/.$(basename $j)"
should be:
mb2md -s "$j" -d "$MAILDIR$i/.$(basename "$j")"
(note the added double-quotes around the argument
to basename(1)). or, as I noted earlier (which
also contains a suggestion on handling newline),
that line could be rewritten as:
mb2md -s "$j" -d "$MAILDIR$i/.${j##*/}"
cheers!
-blf-
--
▶ ▶ I AM CURRENTLY LOOKING FOR A JOB! ◀ ◀ | Brian Foster
Experienced (>25 yrs) software engineer: | Montpellier, FRANCE
• Unix, Linux, embedded, design-for-test; | Stop E$$o (ExxonMobile)!
• Software/hardware co-design, debugging; | http:/www.stopesso.com
• Kernels, drivers, filesystems, &tc; Résumé (CV) & contact details:
• IDL, automated testing, process, &tc. http://www.blf.utvinternet.ie
More information about the ILUG
mailing list