Re: .ini files in bash?

From: Cameron Hutchison (camh+dl_at_xdna.net)
Date: 11/30/04

  • Next message: Thomas Adam: "Re: Expired passwords and Display Managers"
    Date: Tue, 30 Nov 2004 10:01:29 +1100
    To: debian-user@lists.debian.org
    
    

    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 debian-user-REQUEST@lists.debian.org 
    with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
    

  • Next message: Thomas Adam: "Re: Expired passwords and Display Managers"

    Relevant Pages