揮発性のメモ2

知識をメモ書きしておく

PHPのシステム関数で、hexdumpの出力結果同士のdiffをとる

コマンドの出力結果同士の差分は、bashで プロセス置換 というワザを使う。

diff <(hexdump -C /tmp/a.bin) <(hexdump -C /tmp/b.bin)

bash でコマンドの実行結果をファイルとして扱う - Diary
bashのプロセス置換で遊んでみよう! | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]


これをsystem関数で呼べばいいだけだけど、エラーになる。 たぶん/bin/shを使ってる

<?
system("diff <(hexdump -C /tmp/a.bin) <(hexdump -C /tmp/b.bin)");
...

sh: -c:0: 予期しないトークン `(' 周辺に構文エラーがあります


よって、敢えてbashを使うことで意図した動作になる

<?
system("bash -c 'diff <(hexdump -C /tmp/a.bin) <(hexdump -C /tmp/b.bin)'");

やったぜ