コマンドを入力する時、多くはオプションを指定して実行します。それらは非常に数多くなることがあり、一行のコマンドが長くなってしまいます。その点、対話型のコマンドでは指定された情報を順番に入力していけば良いので分かりやすくなります。 fillinは任意のコマンドを対話型にしてくれるソフトウェアです。

fillinの使い方

例です。fillin コマンドに続けて実際のコマンドを書きます。その際 {{}} で囲むことで入力が対話型になります。

$ fillin echo "Hello {{lastname}} {{firstname}}"
lastname: Atsushi
firstname: Nakatsugawa
Hello Atsushi Nakatsugawa

: を使うと入力がグルーピングされます。

$ fillin psql -h {{psql:hostname}} -U {{psql:username}} -d {{psql:dbname}}
[psql] hostname: localhost
[psql] username: root
[psql] dbname: db

パイプやリダイレクトも使えます。

$ fillin echo {{message}} '|' jq .
message: "{'a': 'b'}"
"{a: b}"

fillinを使うとコマンドをグルーピングしたり、エイリアス名を使って分かりやすく記述できます。そして実際の入力はインタラクティブに順番に入力できます。コマンドを使い慣れた人にとっては一行で書ける方が便利かも知れませんが、不慣れな方にとってはfillinを使う方が分かりやすく入力できるでしょう。

fillinはGo製のオープンソース・ソフトウェア(MIT License)です。

itchyny/fillin: fill-in your command and execute