Bash

!# 在 csh、bash、zsh 和可能的其他 shell 中有什麼用?

  • September 22, 2019

來自man bash

!# 到目前為止鍵入的整個命令行。

來自man zshall

!# 參考目前輸入的命令行。該行被視為完整,直到包含!#引用的單詞之前的單詞。

我唯一能想到的是:

cd ..;!#!#!#

要上 8 個步驟:))

我不經常使用它,但它有時與: 提取命令的第 n 個單詞一起使用。例如:

$ touch FILE.a
$ echo file created
$ mv FILE.a !#:1.bak
mv FILE.a FILE.a.bak

另一個範例,雖然在實踐中毫無意義,但可以將它與cut獲取在簡單命令的同一行中定義的變數的內容一起使用,例如:

$ LETTER=a echo letter: $(cut -d '=' -f2 <<< "!#:0")
letter: a

$LETTER請注意,在執行命令之前,這不會像展開的那樣工作:

$ LETTER=a echo letter: $LETTER
letter:

引用自:https://unix.stackexchange.com/questions/543101