-1

让我说清楚。

我写了一个 bash 脚本,它需要几个参数;它将首先将参数传递给 command 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.*"

非常感谢!

4

2 回答 2

0

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

不,它将传递-wefps然后将程序的输出通过管道传输到egrep ".*somethingtomatch.*".

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

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

于 2012-06-18T20:53:51.343 回答
0

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

于 2012-06-18T20:54:49.687 回答