|
From: | Eric Blake |
Subject: | Re: Backslash missing in brace expansion |
Date: | Fri, 6 Dec 2019 13:36:27 -0600 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 |
On 12/5/19 10:53 PM, Martin Schulte wrote:
(2019-11-11) x86_64 GNU/Linux $ echo ${BASH_VERSINFO[@]} 4 4 12 1 release x86_64-pc-linux-gnu $ set -x $ echo {Z..a} + echo Z '[' '' ']' '^' _ '`' a Z [ ] ^ _ ` a It looks as if the backslash (between [ and ] in ASCII code) is missing in brace expansion. The same behaviour seems to be found in bash 5.0.It's an unquoted backslash, which is removed by quote removal when the words are expanded. Look at the extra space between `[' and `]'; that's the null argument resulting from the unquoted backslash.Yes - sure. But then I'm wondering why the unquoted backtick doesn't start command substitution:
It may be version dependent: $ echo ${BASH_VERSINFO[@]} 5 0 7 1 release x86_64-redhat-linux-gnu $ echo b{Z..a}d bash: bad substitution: no closing "`" in `d -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
[Prev in Thread] | Current Thread | [Next in Thread] |