envコマンド

UNIX のコマンドで(本来の)機能が誤解されがちなコマンドとして cat や touch が有名な 気がするが,env もそのひとつだと思う。env の使われ方としては,単独で実行して設定されている 環境変数を見たり,shebang で bash (やその他 executable)のパスをハードコードするのを避けるために

#!/usr/bin/env bash

といった感じで使われるのが多分ほとんどのような気がする。

env の本来(?)の機能は環境変数をいじってからコマンドを実行するといったところだ。 なので Bash から実行するときは env なしで

FOO=bar command

といった感じで実行しているのをこういった書き方が使えない環境で実現したいと思ったときに

env FOO=bar command

というコマンドで実行すると等価なことができるということだ。