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

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

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

help alias在我的 bash 提示字元下運行僅返回以下內容:

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

然後是一段非常短的文字,與我要問的內容無關。

我也嘗試過:

help function

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

例如:

 alias mancat="man command | cat"

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

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

答案1

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

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 file,然後只選擇不符合的行pattern2( grep -v) ,最後僅選擇第一行(或最後一行)。

相關內容