[email protected] wrote:
On Fri, Feb 26, 2010 at 04:27:16PM -0600, Blues Renegade wrote:
I need help getting the printf command to properly format a multi-line "Usage:" message I've put in a bash shell script.

# Usage message assigned to var, USAGE
USAGE="\nUsage: `basename $0` [DIRECTORY]\n\n"\
"NOTE:\tIf no directory is specified, `basename $0`\n"\
"\tstarts searching in the current directory.\n"\
"\tSearch results are displayed on-screen and\n"\
"\twritten to the file, 'dupes-found.txt',\n"\
"\tin the top-level search directory.\n"

# Using %b printf correctly translates the escape sequences,
# but strips all the white space out of the message.
printf "%b" $USAGE

# echo -e $USAGE will show you how I intend this message to look. ;)
# When using echo -e and creating the $USAGE message with spaces
# instead of /t tab chars escaped, all the spaces were stripped but one.

I've always been lazy and used echo, but it's time I step up to printf and gain more control of my output.

TIA for any help, suggestions, links, you can provide!

John



--
You received this message because you are subscribed to the Linux Users Group.
To post a message, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit our group at 
http://groups.google.com/group/linuxusersgroup


printf "%b" "$USAGE"

It was treating every word in 'USAGE' as a separate argument, and
concatenating them together.

Thank you! Thanks for the explanation and the correct example. I had to look twice to notice the quotes, but they fixed it!!

John


--
You received this message because you are subscribed to the Linux Users Group.
To post a message, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit our group at 
http://groups.google.com/group/linuxusersgroup

Reply via email to