From: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
To: Harald van Dijk <harald@gigawatt.nl>
Cc: dash@vger.kernel.org, Herbert Xu <herbert@gondor.apana.org.au>,
jrnieder@gmail.com
Subject: Re: Quoted closing brace in variable default expansion
Date: Sat, 20 Nov 2010 21:57:43 +0100 (CET) [thread overview]
Message-ID: <1011202153390.11055@somehost> (raw)
In-Reply-To: <4CE71991.3020108@gigawatt.nl>
On Sat, 20 Nov 2010, Harald van Dijk wrote:
> On 19/11/10 14:53, Herbert Xu wrote:
> > Harald van Dijk<harald@gigawatt.nl> wrote:
> > > sh -c 'echo "${x:-\}}"'
> >
> > If you need to print anything involving a backspace you should
> > use printf and not echo.
>
> It's true that backslashes should not be passed to echo, but assuming
> unset or empty x, "${x:-\}}" should expand to "}", and that is all echo
> should see.
You seem to have a point there:
,----[ http://opengroup.org/onlinepubs/007908799/xcu/chap2.html ]
| single-quotes cannot be used to quote the "}" within ${...}; for
| example:
|
| unset bar
| foo="${bar-'}'}"
|
| is invalid because the ${...} substitution contains an unpaired
| unescaped single-quote. The backslash can be used to escape the "}" in
| this example to achieve the desired result:
|
| unset bar
| foo="${bar-\}}"
`----
Cheers,
--
Cristian
next prev parent reply other threads:[~2010-11-20 21:07 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-13 16:28 Quoted closing brace in variable default expansion Harald van Dijk
2010-11-13 16:41 ` Jonathan Nieder
2010-11-13 17:29 ` Harald van Dijk
2010-11-19 13:54 ` Herbert Xu
2010-11-20 0:43 ` Harald van Dijk
2010-11-20 20:57 ` Cristian Ionescu-Idbohrn [this message]
2010-11-21 13:42 ` [PATCH] [PARSER] Remove backslash before } in double-quotes in variable Jilles Tjoelker
2010-11-21 16:35 ` Jonathan Nieder
2010-11-23 18:46 ` Harald van Dijk
2011-03-10 8:59 ` Herbert Xu
2011-03-11 18:32 ` Jilles Tjoelker
2010-11-13 17:51 ` Quoted closing brace in variable default expansion Jilles Tjoelker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1011202153390.11055@somehost \
--to=cristian.ionescu-idbohrn@axis.com \
--cc=dash@vger.kernel.org \
--cc=harald@gigawatt.nl \
--cc=herbert@gondor.apana.org.au \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.