(m4.info)Esyscmd


Next: Sysval Prev: Syscmd Up: Shell commands
Enter node , (file) or (file)node

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
     of 'm4'.

     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.

     define(`foo', `FOO')
     =>
     esyscmd(`echo foo')
     =>FOO
     =>

   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 version 1.2.2.9