次: Sysval, 前: Syscmd, 上: UNIX commands
UNIXコマンドの出力をm4に読み込ませたいときは
esyscmdを使ってください。
esyscmd(shell-command)
このマクロはシェルコマンドshell-commandの標準出力の内容に展開されます。
m4はコマンドの実行に先立ち自分の出力バッファをフラッシュします。
shell-commandのデフォルトの標準入力および標準エラー出力は
m4のものと同じになります。
shell-commandのエラー出力は展開テキストの一部にはなりません
― m4のエラー出力と一緒に出てくるでしょう。
次の例ではGNU m4ディストリビューションのchecksディレクトリ
にいると仮定します。
define(`vice', `esyscmd(grep Vice ../COPYING)')
=>
vice
=> Ty Coon, President of Vice
=>
esyscmdの展開によるテキストの後ろに改行がついている様子に
注意してください。
esyscmdは引数を与えたときだけ認識されます。