Next: Sysval Prev: Syscmd Up: Shell commands
13.3 Reading the output of commands
If you want `m4' to read the output of a shell command, use `esyscmd':
-- Builtin: esyscmd (SHELL-COMMAND)
Expands to the standard output of the shell command SHELL-COMMAND.
Prior to executing the command, `m4' flushes its buffers. The
default standard input and standard error of SHELL-COMMAND are the
same as those of `m4'. The error output of SHELL-COMMAND is not a
part of the expansion: it will appear along with the error output
By default, the SHELL-COMMAND will be used as the argument to the
`-c' option of the `/bin/sh' shell (or the version of `sh'
specified by `command -p getconf PATH', if your system supports
that). If you prefer a different shell, the `configure' script
can be given the option `--with-syscmd-shell=LOCATION' to set the
location of an alternative shell at GNU `m4' installation; the
alternative shell must still support `-c'.
The macro `esyscmd' is recognized only with parameters.
Note how the expansion of `esyscmd' keeps the trailing newline of
the command, as well as using the newline that appeared after the macro.
Just as with `syscmd', care must be exercised when sharing standard
input between `m4' and the child process of `esyscmd'.
automatically generated by info2www