コマンドラインで printenv コマンドを送信すると、変数の 1 つが次のようになっていることがわかります。
_=/usr/bin/printenv
私は今、これを行います:
mo@mo-Toshiba ~/Workspace $ printenv _
/usr/bin/printenv
しかし、この変数に対して echo を呼び出そうとすると、次の結果になります。
mo@mo-Toshiba ~/Workspace $ echo $_
_
何が起こっているのでしょうか? echo はなぜこれを変数として扱わないのでしょうか? (つまり、$PATH や $PWD のように)
答え1
それは変数です。シェル変数_
コマンドを実行するたびに、シェルによって更新され、前のコマンドの最後の引数が含まれます。
あまり頻繁に役立つわけではありませんが、「最後のコマンドと同じファイル (または他のオブジェクト)」に対して何かを実行するためのエイリアスまたは関数を記述できます。
変数はサブプロセスの環境にも追加されます。そこには、シェルで渡されたコマンドの名前(PATH
検索前)が含まれます。