【问题标题】:How to create bash alias with argument? [duplicate]如何使用参数创建 bash 别名? [复制]
【发布时间】:2012-07-13 01:32:25
【问题描述】:

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

现在我想的是创建一个像

这样的 bash 别名
alias lsps='ps -elf | grep $1'

上面的详细描述只会使用lsps processname

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

PS:我知道我可以为上述任务编写一个 shell 脚本,但我只是想知道如何使用 bash 别名。

【问题讨论】:

  • 别名根本不带参数。
  • 对于 GNU ps,最好说 lsps () { ps -lf -C "$1" ; }

标签: bash


【解决方案1】:

很简单;

alias lsps='ps -elf | grep'

命令行参数将自动添加到别名的末尾:

lsps arg1 arg2 arg3 => converted to => ps -elf | grep arg1 arg2 arg3

仅当您想在别名末尾添加参数时才有效。

如果你想在扩展的命令行中获取别名的参数,你必须使用函数:

例如:

lsps()
{
    ps -elf | grep "$1" | grep -v grep
}

函数和别名可以保存在您的 ~/.bashrc 文件中)或其中包含的文件):

$ cat /tmp/.bash_aliases
lsps()
{
    ps -elf | grep "$1" | grep -v grep
}

$ . /tmp/.bash_aliases
$

【讨论】:

  • 谢谢它的工作。但是如果我不得不给出一个论点呢。
  • 在这种情况下使用函数
  • 这很奇怪。可能是您在函数名称后添加了额外的空格(在其定义中)。我在答案中添加了使用示例,您可以看到所有作品都很完美。
  • 是的,你必须添加功能;仅此而已。
  • 还是不行。这是我的.bash_aliaseserror
【解决方案2】:

使用这个:

alias lsps='ps -elf | grep'

然后你可以发出这个:

lsps processname

【讨论】:

    猜你喜欢
    • 2020-10-07
    • 2010-12-21
    • 2012-02-16
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    相关资源
    最近更新 更多