繁体   English   中英

如何在别名中逃避管道中的grep和awk?

[英]How to escape grep and awk within pipe in an alias?

我想为一个长命令创建一个别名。 但是我无法正确地逃避它,我想这是管道的问题。

我原来的命令

ps aux | grep gimp | awk '{ print $2 '\011' $11 }' | grep -v 'grep'

我尝试别名

alias psa="ps aux | grep $1 | awk '{ print \$2 \"\011\" \$11 }' | grep -v 'grep'"

但是我得到一个错误, grep无法打开文件foo (当我做psa foo
当我删除最后一部分| grep -v 'grep' | grep -v 'grep'然后awk抛出同样的错误。

我更喜欢shell脚本之前的别名。

如果要插入参数,则需要使用函数:

psa() {
    ps aux | grep "$1" | awk '{print $2 "\t" $11 }' | grep -v grep
}

您可以使用以下函数来避免所有转义:

myps() {
   ps aux | grep gimp | awk '{ print $2 "\011" $11 }' | grep -v 'grep'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM