Next: Here-Documents, Previous: Shellology, Up: Portable Shell Programming [Contents][Index]
The Korn shell (up to at least version M-12/28/93d) has a bug when
invoked on a file whose name does not contain a slash. It first
searches for the file’s name in PATH
, and if found it executes
that rather than the original file. For example, assuming there is a
binary executable /usr/bin/script in your PATH
, the last
command in the following example fails because the Korn shell finds
/usr/bin/script and refuses to execute it as a shell script:
$ touch xxyzzyz script $ ksh xxyzzyz $ ksh ./script $ ksh script ksh: script: cannot execute
Bash 2.03 has a bug when invoked with the -c option: if the option-argument ends in backslash-newline, Bash incorrectly reports a syntax error. The problem does not occur if a character follows the backslash:
$ $ bash -c 'echo foo \ > ' bash: -c: line 2: syntax error: unexpected end of file $ bash -c 'echo foo \ > ' foo
See Backslash-Newline Before Empty Lines, for how this can cause problems in makefiles.