如何绕过grep / egrep的效果?

时间:2012-06-18 20:48:27

标签: bash grep

让我说清楚。

我写了一个bash脚本,它有几个参数;它将首先将参数传递给命令ps,例如:

$ ./myscript.sh -wef | egrep ".*somethingtomatch.*"

该脚本会将-wef | egrep ".*somethingtomatch.*"传递给ps以生成ps -wef | egrep ".*somethingtomatch.*"的结果,

然后我的其余部分将执行其他操作,它将在屏幕上显示其他输出。

但是,由于我对bash的原始输入是$ ./myscript.sh -wef | egrep ".*somethingtomatch.*",因此egrep的效果会使脚本中的其他输出不可见。

我可以做些什么来使其他输出可见并保持原始输入格式 - 我不想在$ ./myscript.sh -wef | egrep ".*somethingtomatch.*"

中添加额外的引号或其他符号

非常感谢!

2 个答案:

答案 0 :(得分:0)

  

该脚本会将-wef | egrep ".*somethingtomatch.*"传递给ps以生成ps -wef | egrep ".*somethingtomatch.*"的结果

不,它会将-wef传递给ps,然后将您的计划的输出传输到egrep ".*somethingtomatch.*"

您不想更改语法,因此无法解决您的问题。放松你的约束。

最简单的方法是将其作为第二个参数传递:./myscript.sh -wef somethingtomatch

答案 1 :(得分:0)

不能将裸管(|)作为参数。期。你 需要像\|一样逃避它。所以,如果你不想在你的调用中添加任何符号,你唯一的解决方案是编写另一个shell,或者用另一个字符构建bash来管道......