如何使用可以在运行时更改的变量定义别名?

Dis*_*ame 4 bash alias profile function variable

这可能是一个很容易回答的问题,但由于撰写标题时的措辞不同,我找不到任何已经提出此问题的问题。

help alias在我的 bash 提示符下运行只返回这个:

alias: alias [-p] [name[=value] ... ] 
Run Code Online (Sandbox Code Playgroud)

然后是一个非常短的文本,与我的要求无关。

我也试过:

help function
Run Code Online (Sandbox Code Playgroud)

但这也没有给我太多信息。

例如:

 alias mancat="man command | cat"
Run Code Online (Sandbox Code Playgroud)

这样我就可以运行mancat grep这相当于man grep | cat.

我知道这称为变量,但它们未定义,我希望能够像运行示例命令一样随时更改它们。

jim*_*mij 6

您需要使用函数,而不是别名,以便

mancat () { man "$1" | cat ; }
mancat grep
Run Code Online (Sandbox Code Playgroud)

会做你想做的。

相似地

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

grepforpattern1file然后只选择不匹配pattern2( grep -v) 的行,最后只选择第一行(或最后一行)。