[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Here strings and brace expansion not working as per man page
From: |
Conor McCarthy |
Subject: |
Here strings and brace expansion not working as per man page |
Date: |
Wed, 8 Feb 2017 20:04:51 +0000 |
Configuration Information [Automatically generated, do not change]:
Machine: i686
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' -DCONF_OSTYPE='linu
x-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/
local/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./incl
ude -I./lib -g -Wno-parentheses -Wno-format-security -fno-inline
uname output: Linux gomez 2.6.33.4-smp #2 SMP Wed May 12 22:47:36 CDT 2010 i686
Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz GenuineIntel GNU/Linux
Machine Type: i686-pc-linux-gnu
Bash Version: 4.4
Patch Level: 12
Release Status: release
Description:
Here strings are documented as:
[n]<<<word
The word undergoes brace expansion, tilde expansion, parameter and
variable expansion, command substitution, arithmetic expansion, and
quote removal.
But brace expansion is not applied:
$ read zz <<< {1..9}
$ echo $zz
{1..9}
The codepath from write_here_string() does not pass through any
expand_xxx functions which apply brace expansion, AFAICT.
(bash was built with -fno-inline for gdb only)
Repeat-By:
$ read zz <<< {1..9}
$ echo $zz
{1..9}
Expected behaviour would be similar to:
$ read zz <<< $(echo {1..9})
$ echo $zz
1 2 3 4 5 6 7 8 9
Fix:
I have hacked a call to brace_expand() into write_here_string()
before it calls expand_string_unsplit_to_string() as a possible
solution, though I suspect there's a cleaner way... perhaps an
alternate expand_ function is available?
(I can clean this up and submit it if I'm barking up the right tree.)
- Here strings and brace expansion not working as per man page,
Conor McCarthy <=