Clarify nested double-quotes and backquotes shell issues.

* doc/autoconf.texi (Shellology): New anchor for pdksh.
(Shell Substitutions): Link to it for escaped double-quotes
within double-quoted backquotes; add ksh example for unescaped
inner double-quotes problem.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
This commit is contained in:
Ralf Wildenhues 2010-06-22 20:05:38 +02:00
parent fda8d216db
commit bba5963d58
2 changed files with 18 additions and 2 deletions

View File

@ -1,5 +1,11 @@
2010-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Clarify nested double-quotes and backquotes shell issues.
* doc/autoconf.texi (Shellology): New anchor for pdksh.
(Shell Substitutions): Link to it for escaped double-quotes
within double-quoted backquotes; add ksh example for unescaped
inner double-quotes problem.
Mention Tru64 5.1 fgrep limitation with emtpy patterns.
* doc/autoconf.texi (Limitations of Usual Tools): Update.

View File

@ -14626,6 +14626,7 @@ the standard shell conform to Posix.
@item Pdksh
@prindex @samp{pdksh}
@anchor{pdksh}
A public-domain clone of the Korn shell called @command{pdksh} is widely
available: it has most of the @samp{ksh88} features along with a few of
its own. It usually sets @code{KSH_VERSION}, except if invoked as
@ -15139,9 +15140,18 @@ esac
@noindent
and in fact it is even @emph{more} portable: in the first case of the
first attempt, the computation of @code{top_srcdir} is not portable,
since not all shells properly understand @code{"`@dots{}"@dots{}"@dots{}`"}.
since not all shells properly understand @code{"`@dots{}"@dots{}"@dots{}`"},
for example Solaris 10 ksh:
@example
$ @kbd{foo="`echo " bar" | sed 's, ,,'`"}
ksh: : cannot execute
ksh: bar | sed 's, ,,': cannot execute
@end example
@noindent
Worse yet, not all shells understand @code{"`@dots{}\"@dots{}\"@dots{}`"}
the same way. There is just no portable way to use double-quoted
the same way (@pxref{pdksh}). There is just no portable way to use double-quoted
strings inside double-quoted back-quoted expressions (pfew!).
@table @code