diff options
author | Denys Vlasenko | 2016-10-02 18:08:04 +0200 |
---|---|---|
committer | Denys Vlasenko | 2016-10-02 18:08:04 +0200 |
commit | e3354bc44aa92c20bec0ffdc78e6b57351e8f16d (patch) | |
tree | 5b1d0397af69b7bcd9f63d94705cfdbade01810a /shell/ash_test/ash-vars/var_bash4.tests | |
parent | c4cf542c575068d55368e771abf6c358bfebf5d3 (diff) | |
download | busybox-e3354bc44aa92c20bec0ffdc78e6b57351e8f16d.zip busybox-e3354bc44aa92c20bec0ffdc78e6b57351e8f16d.tar.gz |
ash testsuite: update some of variable tests with newer versions from hush
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test/ash-vars/var_bash4.tests')
-rwxr-xr-x | shell/ash_test/ash-vars/var_bash4.tests | 52 |
1 files changed, 43 insertions, 9 deletions
diff --git a/shell/ash_test/ash-vars/var_bash4.tests b/shell/ash_test/ash-vars/var_bash4.tests index d547061..32aa2b3 100755 --- a/shell/ash_test/ash-vars/var_bash4.tests +++ b/shell/ash_test/ash-vars/var_bash4.tests @@ -6,23 +6,30 @@ # even in quotes. # # bash4 (and probably bash3 too): "Quoted:" results are different from -# unquoted and assignment expansions - they have a backslash before z. +# unquoted expansions - they have a backslash before z. +# +# The difference only exists if repl is a literal. If it is a variable: +# ${v/.../$s}, then all backslashes are preserved in both cases. v='a*b\*c' echo 'Source: ' "$v" echo 'Replace str: ' '_\\_\z_' echo 'Pattern: ' 'single backslash and star: "replace literal star"' -r=${v/\*/_\\_\z_} -echo 'In assignment:' "$r" echo 'Unquoted: ' ${v/\*/_\\_\z_} +r=${v/\*/_\\_\z_} +echo 'Unquoted =: ' "$r" echo 'Quoted: ' "${v/\*/_\\_\z_}" +r="${v/\*/_\\_\z_}" +echo 'Quoted =: ' "$r" echo 'Pattern: ' 'double backslash and star: "replace backslash and everything after it"' -r=${v/\\*/_\\_\z_} -echo 'In assignment:' "$r" echo 'Unquoted: ' ${v/\\*/_\\_\z_} +r=${v/\\*/_\\_\z_} +echo 'Unquoted =: ' "$r" echo 'Quoted: ' "${v/\\*/_\\_\z_}" +r="${v/\\*/_\\_\z_}" +echo 'Quoted =: ' "$r" echo @@ -31,16 +38,43 @@ echo 'Source: ' "$v" echo 'Replace str: ' '_\\_\z_' echo 'Pattern: ' 'single backslash and b: "replace b"' -r=${v/\b/_\\_\z_} -echo 'In assignment:' "$r" echo 'Unquoted: ' ${v/\b/_\\_\z_} +r=${v/\b/_\\_\z_} +echo 'Unquoted =: ' "$r" echo 'Quoted: ' "${v/\b/_\\_\z_}" +r="${v/\b/_\\_\z_}" +echo 'Quoted =: ' "$r" echo 'Pattern: ' 'double backslash and b: "replace backslash and b"' -r=${v/\\b/_\\_\z_} -echo 'In assignment:' "$r" echo 'Unquoted: ' ${v/\\b/_\\_\z_} +r=${v/\\b/_\\_\z_} +echo 'Unquoted =: ' "$r" echo 'Quoted: ' "${v/\\b/_\\_\z_}" +r="${v/\\b/_\\_\z_}" +echo 'Quoted =: ' "$r" + +echo + +v='a\bc' +s='_\\_\z_' +echo 'Source: ' "$v" +echo 'Replace str: ' "$s" '(as variable $s)' + +echo 'Pattern: ' 'single backslash and b: "replace b"' +echo 'Unquoted: ' ${v/\b/$s} +r=${v/\b/$s} +echo 'Unquoted =: ' "$r" +echo 'Quoted: ' "${v/\b/$s}" +r="${v/\b/$s}" +echo 'Quoted =: ' "$r" + +echo 'Pattern: ' 'double backslash and b: "replace backslash and b"' +echo 'Unquoted: ' ${v/\\b/$s} +r=${v/\\b/$s} +echo 'Unquoted =: ' "$r" +echo 'Quoted: ' "${v/\\b/$s}" +r="${v/\\b/$s}" +echo 'Quoted =: ' "$r" echo |