[BUG] 'case' does not match double-quoted backslash

Kang-Che Sung explorer09 at gmail.com
Tue Feb 13 03:51:43 UTC 2018


On Tue, Feb 13, 2018 at 10:34 AM, Martijn Dekker <martijn at inlv.org> wrote:
> Op 13-02-18 om 03:09 schreef Kang-Che Sung:
>> Just wondering, why using "\z" and not "\\z" ?
>> The former doesn't seem to be a valid syntax.
>
> It is valid, though. See the POSIX specification:
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02_03
>
> ===begin quote===
> 2.2.3 Double-Quotes
> [...]
>
> \
>     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>
> ===end quote===
>
> So, this should simply work. It worked on ash before. It also works on
> every other POSIX shell, and existing scripts rely on it.

It says the backslash is special only when followed by the $ ` " \
<newline> characters.
That is, \$ \` \" \\ and \<newline> are special, but none of these
includes the \z you
mentioned, so what you described is an undefined behavior.


More information about the busybox mailing list