環境変数 _

環境変数 _

コマンドラインで printenv コマンドを送信すると、変数の 1 つが次のようになっていることがわかります。

_=/usr/bin/printenv

私は今、これを行います:

mo@mo-Toshiba ~/Workspace $ printenv _
/usr/bin/printenv

しかし、この変数に対して echo を呼び出そうとすると、次の結果になります。

mo@mo-Toshiba ~/Workspace $ echo $_
_

何が起こっているのでしょうか? echo はなぜこれを変数として扱わないのでしょうか? (つまり、$PATH や $PWD のように)

答え1

それは変数です。シェル変数_コマンドを実行するたびに、シェルによって更新され、前のコマンドの最後の引数が含まれます。

あまり頻繁に役立つわけではありませんが、「最後のコマンドと同じファイル (または他のオブジェクト)」に対して何かを実行するためのエイリアスまたは関数を記述できます。

変数はサブプロセスの環境にも追加されます。そこには、シェルで渡されたコマンドの名前(PATH検索前)が含まれます。

関連情報