Bash

如何使用可以在執行時更改的變數定義別名?

  • November 14, 2014

這可能是一個很容易回答的問題,但由於編寫標題時的措辭不同,我找不到任何已經提出這個問題的問題。

help alias在我的 bash 提示符下執行僅返回以下內容:

alias: alias [-p] [name[=value] ... ] 

然後是一個非常短的文本,與我的要求無關。

我也試過:

help function

但這也沒有給我太多資訊。

例如:

alias mancat="man command | cat"

這樣我就可以執行mancat grep相當於man grep | cat.

我知道這被稱為變數,但它們是未定義的,我希望能夠隨時更改它們,就像執行我的範例命令時一樣。

您需要使用函式,而不是別名,以便

mancat () { man "$1" | cat ; }
mancat grep

會做你想做的。

相似地

mygrep () { "$1" "$3" "$2" | "$1" -v "$4" | "$5" -n1; }
mygrep grep pattern1 file pattern2 head
mygrep grep pattern1 file pattern2 tail

grepfor pattern1in thefile然後僅選擇不匹配pattern2( grep -v) 的行,最後僅選擇第一行(或最後一行)。

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