【发布时间】:2014-06-03 05:02:54
【问题描述】:
我想为长命令创建一个别名。但是我无法正确逃脱它,我猜这是管道的问题。
我原来的命令
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' 时,awk 会抛出同样的错误。
我更喜欢在 shell 脚本之前使用别名。
【问题讨论】:
-
你原来的命令看起来不对,不应该是
print命令中的双引号吗? -
别名不处理参数,所以我认为即使你解决了引用问题,你所做的也不会奏效。让它成为一个 shell 函数。
-
为什么要这样解析
ps的输出?它是可怕的!你不是说pgrep -l gimp吗?