Once upon a time Cameron Hutchison said... > > I was working on a proper solution, but put it aside when I got to nine > consecutive backslashes in a sed expression.
Replying to my own posts - a sign of madness. A further sign is that I think I've got a function that will do it properly. I didn't need nine consecutive backslashes, but it's still not pretty. > If anyone feels like an exercise, the goal is to get a file that can be > sourced by the shell that contains lines of the form: > > FOO='bar' > > with single quotes surrounding the value. You need to handle the case > where there is a single quote in the string: > > The string > World's apart. Who's the boss. > > needs to be encoded as: > > FOO='World'\''s apart. Who'\''s the boss.' function savevars() { for var in "$@" ; do eval echo $var='$(echo $'$var' | sed -e "s/'\''/'\''\\\\'\'\''/g" -e "s/^/'\''/" -e "s/$/'\''/" )' done } Make sure you have that eval line as a single line if your mailer wraps it. It may be a a little hard to discern the single quotes from the double quotes from the backquotes so: 1) There are no backquotes above. 2) The only double quotes are around the sed expressions (-e "s/a/b/"). And there's double quotes arounf "$@" on the line before. 3) The others are all single quotes - no more than two consecutive single quotes. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]