On 30/01/2021 22:44, Rich Lafferty wrote:
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: darwin18.7.0
Compiler: clang
Compilation CFLAGS: -DSSH_SOURCE_BASHRC
uname output: Darwin flounder.home.mati.ca 18.7.0 Darwin Kernel Version 18.7.0:
Tue Nov 10 00:07:31 PST 2020; root:xnu-4903.278.51~1/RELEASE_X86_64 x86_64
Machine Type: x86_64-apple-darwin18.7.0
Bash Version: 5.1
Patch Level: 0
Release Status: release
Description:
Here strings ('<<<') fold newlines into spaces on MacOS, but not on Linux,
leading to incompatibilites in bash code expected to work the same on both
platforms.
Repeat-By:
On Linux:
$ od -bc <<< $(echo -e "foo\nbar")
0000000 146 157 157 012 142 141 162 012
f o o \n b a r \n
0000010
On MacOS:
$ od -bc <<< $(echo -e "foo\nbar")
0000000 146 157 157 040 142 141 162 012
f o o b a r \n
0000010
Are you certain that you're not testing /bin/bash (version 3.2.57) in
the case of macOS? I ask because the bug you describe is said to have
been addressed by the release of 4.4-beta [1].
z. Bash no longer splits the expansion of here-strings, as the
documentation has always said.
You can work around it by double quoting the command substitution.
[1] https://tiswww.case.edu/php/chet/bash/CHANGES
--
Kerin Millar