让我说清楚。
我写了一个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.*"
非常感谢!
答案 0 :(得分:0)
该脚本会将
-wef | egrep ".*somethingtomatch.*"
传递给ps
以生成ps -wef | egrep ".*somethingtomatch.*"
的结果
不,它会将-wef
传递给ps
,然后将您的计划的输出传输到egrep ".*somethingtomatch.*"
。
您不想更改语法,因此无法解决您的问题。放松你的约束。
最简单的方法是将其作为第二个参数传递:./myscript.sh -wef somethingtomatch
。
答案 1 :(得分:0)
你不能将裸管(|
)作为参数。期。你 需要像\|
一样逃避它。所以,如果你不想在你的调用中添加任何符号,你唯一的解决方案是编写另一个shell,或者用另一个字符构建bash来管道......