[英]Bash alias using !$
我今天發現我可以寫!$
來從最后一個執行的命令獲取最后一個參數。
現在我正在嘗試使用該快捷方式創建一個別名,它根本不起作用。
這些是我想要創造的。
alias gal='git add !$'
alias gcl='git checkout !$'
alias sl='sublime !$'
這是調用gal
或gcl
時的結果輸出
fatal: pathspec '!$' did not match any files
所以看起來好像!$
just並沒有被這個上下文中最后一個命令的最后一個參數所取代。
可能嗎?
你可以使用bash builtin history命令fc
:一個例子
$ alias re_echo='echo $(fc -ln -2 | awk '\''NR==1 {print $NF}'\'')'
$ echo foo
foo
$ re_echo bar
foo bar
$ re_echo baz
bar baz
$ re_echo qux
baz qux
您可能還想使用Bash的$_
內部變量 ,而不是擺弄Bash的歷史:手冊的相關部分說明:
$_
:[...]擴展后擴展到上一個命令的最后一個參數。 [...]
例如:
$ touch one two three
$ echo "$_"
three
$ ls
$ echo "$_"
ls
$ a='hello world'
$ echo $a
hello world
$ echo "$_"
world
$ echo "$a"
hello world
$ echo "$_"
hello world
$
在您的情況下,您的別名將如下所示:
alias gal='git add "$_"'
alias gcl='git checkout "$_"'
alias sl='sublime "$_"'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.