我在命令列中發送 printenv 命令,我看到其中一個變數如下:
_=/usr/bin/printenv
我現在這樣做:
mo@mo-Toshiba ~/Workspace $ printenv _
/usr/bin/printenv
但是當嘗試對此變數呼叫 echo 時,我得到以下資訊:
mo@mo-Toshiba ~/Workspace $ echo $_
_
是什麼賦予了?為什麼 echo 不將其視為變數? (即像 $PATH 或 $PWD)
答案1
它是一個變數。這外殼變數_
每次執行命令時 shell 都會更新它以包含上一個命令的最後一個參數。
它並不經常有用,但它允許您編寫別名或函數來對「與最後一個命令相同的檔案(或其他物件)」執行某些操作。
該變數也被加入到子流程的環境中。在那裡,它包含在 shell 中傳遞的命令的名稱(在PATH
查找之前)。