ARG_MAX
| Shells
| whatshell
| portability
| permissions
| UUOC
| ancient
| -
| ../Various
| HOME
"$@"
| echo/printf
| set -e
| test
| tty defs
| tty chars
| $()
vs )
| IFS
| using siginfo
| nanosleep
| line charset
| locale
In most traditional Bourne shells the following reveals a bug which is related to the shell internal quoting mechanism:
set 123b echo "x`cat<<EOF $1 EOF `x"or more readable:
function() { set 123b cat<<EOF $1 EOF } echo "x`function`x"
Instead of the expected output
"x123bx"
you get one of
"x\1\2\3\bx" "x\1\2\x"
depending on whether '\b' is interpreted as Backspace by the echo built-in. (And the example uses echo by intention to remind of this pitfall.)
You cannot try this in shells before SVR1, because they were not
fixed about the bug with "`cat<<...`
" yet.
In SVR2 shells which are not 8bit-clean, you get
"x±²³âx"
(inner characters have the 8th bit set),
because the 8th bit was internally used for the quoting mechanism.
This issue was fixed at least on AIX 3, HP-UX 10 and OSF1/V4.
[...] echo "x"`function`"x"