Next: Sysval, Previous: Syscmd, Up: 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
は引数を与えたときだけ認識されます。