如何使用参数创建bash别名?

如何使用参数创建bash别名?,bash,Bash,我通常使用ps-elf | grep proceesname获取名为processname的进程的详细描述。我想我必须为此写太多了 现在我想的是创建一个bash别名,如 alias lsps='ps -elf | grep $1' 这将仅通过使用lsps processname提供上述详细说明 所以,我的问题是如何创建一个接受参数的bash别名 PS:我知道我可以为上述任务编写shell脚本,但我只是想知道如何使用bash alias来完成它。使用以下命令: alias lsps='ps -e

我通常使用
ps-elf | grep proceesname
获取名为
processname
的进程的详细描述。我想我必须为此写太多了

现在我想的是创建一个bash别名,如

alias lsps='ps -elf | grep $1'
这将仅通过使用
lsps processname
提供上述详细说明

所以,我的问题是如何创建一个接受参数的bash别名

PS:我知道我可以为上述任务编写shell脚本,但我只是想知道如何使用bash alias来完成它。

使用以下命令:

alias lsps='ps -elf | grep'
然后您可以发布以下内容:

lsps processname
很简单,

alias lsps='ps -elf | grep'
命令行参数将自动添加到别名的末尾:

lsps arg1 arg2 arg3 => converted to => ps -elf | grep arg1 arg2 arg3
仅当您希望将参数添加到alias的末尾时,此选项才起作用

如果要在展开的命令行中获取别名的参数,必须使用以下函数:

例如:

lsps()
{
    ps -elf | grep "$1" | grep -v grep
}
函数和别名可以保存在
~/.bashrc
文件)或其中包含的文件中:


谢谢,成功了。但是如果我必须给出一个参数呢?在这种情况下使用函数是很奇怪的。可能是在函数名(在其定义中)之后添加了其他空格。我在我的答案中添加了用法示例,因为您可以看到所有作品都非常完美;就这些,还是不起作用。这是我的,别名根本不带参数。对于GNU
ps
,最好说
lsps(){ps-lf-C“$1”;}
$ cat /tmp/.bash_aliases
lsps()
{
    ps -elf | grep "$1" | grep -v grep
}

$ . /tmp/.bash_aliases
$