Shell
連結時檢索最後一個命令
使用
;
,&&
和連結 zsh 中的命令時||
,如何訪問鏈中的上一個命令(之前正在執行的命令)?例子:rm foo ; echo ...
代替點,我正在尋找某種命令/變數來為我提供
rm foo
.我嘗試過使用
history
and!!
,但那些只提供命令直到最後執行的命令,而不是目前的命令。另一個想法是使用$0
,但這只會列印 zsh 的位置。如果無法僅檢索最後一個命令,則訪問完整的鏈也可以。
您可以執行以下操作:
$ TRAPDEBUG() last_command=$current_command current_command=$ZSH_DEBUG_CMD $ echo test; print -r -- $last_command test echo test
注意會有一些命令的重新格式化:
$ (echo test); print -r -- $last_command test ( echo test ) $ (for a (1 2) echo $a); print -r -- $last_command 1 2 ( for a in 1 2 do echo $a done )