以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2022/07/07/235854より取得しました。


m4でシェルコマンドを実行するには"syscmd"

シェルスクリプトで使用する想定なマクロエンジンm4は、必然としてシェルコマンドの内部実行も可能。

実際のところ


目的であるテンプレートエンジン的な使いかた
引数にファイル名をとり、独自コマンドをパイプで渡して、それをcatでキャッチして実行というながれ

まず、HELLOWORLDという関数を作っておき

$ function HELLOWORLD () {  echo -n 1234; }

単純なテキストデータがある状況を想定。

$ cat basetext.txt
Hello, World

先ほどのHELLOWORLD関数の出力をm4でうけ処理してみると、こんな塩梅でHelloが消える

$ HELLOWORLD | m4 -D Hello="syscmd(cat)" basetext.txt
1234, World

応用例:

少し複雑なコマンドも実行できる

syscmd(`date --iso-8601|sed s/-/./g')
2022.07.07



以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2022/07/07/235854より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14