簡體   English   中英

Bash別名使用!$

[英]Bash alias using !$

我今天發現我可以寫!$來從最后一個執行的命令獲取最后一個參數。

現在我正在嘗試使用該快捷方式創建一個別名,它根本不起作用。

這些是我想要創造的。

alias gal='git add !$'
alias gcl='git checkout !$'
alias sl='sublime !$'

這是調用galgcl時的結果輸出

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM