diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2020-02-22 20:25:03 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2020-02-22 20:29:36 +0100 |
commit | c2058ec98cf3f6722be4436cae07a386e3c7b48d (patch) | |
tree | 16d21416ad7716949955b73481c8224f701eb705 /shell/ash_test/ash-heredoc | |
parent | c08993f40c0c6c7bdf453e77c3aa9dae8ec0dad9 (diff) | |
download | busybox-c2058ec98cf3f6722be4436cae07a386e3c7b48d.tar.gz |
ash: Expand here-documents in the current shell environment
Upstream commit:
Date: Sun, 11 Nov 2007 15:27:00 +0800
Expand here-documents in the current shell environment
Previously we always expanded here-documents in a subshell. This is
contrary to the POSIX specification and how other shells behave. What's
more this slows down many expansions due to the extra fork (however, it
must be said that it is possible for it speed up certain expansions by
running it simultaneously with the command on two CPUs).
This patch move the expansion into the current shell environment.
Test case:
unset a
cat <<- EOF > /dev/null
${a=NOT}
EOF
echo ${a}BAD
Old result:
BAD
New result:
NOTBAD
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test/ash-heredoc')
-rw-r--r-- | shell/ash_test/ash-heredoc/heredoc_side_effects.right | 1 | ||||
-rwxr-xr-x | shell/ash_test/ash-heredoc/heredoc_side_effects.tests | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/shell/ash_test/ash-heredoc/heredoc_side_effects.right b/shell/ash_test/ash-heredoc/heredoc_side_effects.right new file mode 100644 index 000000000..53b2c03c1 --- /dev/null +++ b/shell/ash_test/ash-heredoc/heredoc_side_effects.right @@ -0,0 +1 @@ +NO BUG diff --git a/shell/ash_test/ash-heredoc/heredoc_side_effects.tests b/shell/ash_test/ash-heredoc/heredoc_side_effects.tests new file mode 100755 index 000000000..3fb622ae4 --- /dev/null +++ b/shell/ash_test/ash-heredoc/heredoc_side_effects.tests @@ -0,0 +1,5 @@ +unset a +cat <<EOF >/dev/null +${a=NO} +EOF +echo $a BUG |