В Thu, 6 Jun 2013 08:53:40 +0200
Lennart Poettering <lenn...@poettering.net> пишет:

> On Mon, 20.05.13 10:28, James Buren (r...@ymail.com) wrote:
> 
> > Files such as /etc/machine-info have an incompatibility with systemd in 
> > regards to how
> > it writes and/or parses them. Take the following sample:
> > 
> > PRETTY_HOSTNAME="\'\"\$\`\\"
> > 
> > Systemd will translate this to: '"$`\
> > However, the shells bash and dash will translate this to: \'"$`\
> > 
> > So, it appears to be that systemd is escaping single quotes when the shells 
> > themselves
> > do not honor it for single quotes here. Thoughts for a solution? I ask 
> > because I have to
> > write some systemd config files for a distro installer, and cannot use 
> > hostnamectl yet.
> 
> Hmm, so let me see if I grok this. Bourne shells convert \' inside ""
> quotes into \' while systemd converts it to '. Correct?
> 
> If that's the case we probably something we should fix. However, to do
> that I'd first need to understand the full logic here. For example, what
> do bourne shells translate an unknown backslash-escaped sequence to? In
> systemd we generally translate this to the same string, but with the \
> dropped. The shell appears to simply map it to the exact same string,
> with the \ included. 
> 
> I guess we should do what we should have done in the first place: find
> some docs about the precise Bourne shell escaping rules and reimplement
> that. Anyone has some good docs?
> 

Will The Open Group be enough?

--><--

The <backslash> shall retain its special meaning as an escape character (see 
Escape Character (Backslash)) only when followed by one of the following 
characters when considered special:

$   `   "   \   <newline>

--><--

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02_03

I'm too lazy to look up POSIX online :)
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to