コマンドライン引数を標準入力として扱う

タイトルでは何のことだかわかりませんね。 たまに、標準入力しか受け付けてくれないプログラムってありますよね。 でもコマンドライン引数と違って、標準入力だと補完を受け付けてくれなかったり、いろいろ不便なことも多いですよね。

そんなときはどうすればいいか。 例えばexampleというコマンドが標準入力を受け付けるなら、

echo 'なんとか' | example

と、echoとパイプを使えばいいようです。 あとはシェル関数とかを使って'なんとか'の部分を引数にしてあげれば、コマンドライン引数として扱えます。

自分でプログラミングをしていて、テストする時に毎回同じ引数を与えたい、なんてときにも使えるテクニックですね。