我的这个剧本正在慢慢变大。它的输出通过管道传递到调用文件(后来用于构建电子邮件正文),但是,我有一个特殊的命令在该脚本中调用,其输出我想减少。
我正在尝试
./somecommand | egrep "pattern1|pattern2"
在常规控制台窗口中可以正常工作,但是当我悄悄进入我的大脚本时,管道到egrep会被忽略,而“./somecommand”的整个输出都会出现在父脚本的输出中。
如何解决?
我保持这个问题模糊,以避免复制粘贴整个该死的东西。可根据要求提供更多信息。是的,脚本中的脚本中的脚本,我们需要更深入,等等。我最多可以处理五个脚本,从而处理不同的任务,作为更大的多服务器备份操作的一部分。主操作脚本输出到构建电子邮件正文的文本文件,这用作最终用户看到的日志记录。我在主脚本中调用的一个特定脚本非常“嘈杂”,因此egrep只获取与用户相关的输出。
谢谢大家!
答案 0 :(得分:1)
是否有可能./somecommand将其输出发送到stderr而不是stdout?你可以尝试:
./somecommand 2>&1 | egrep "pattern1|pattern2"
答案 1 :(得分:0)
您是否尝试过grep -v选项?您是否获得了somecommand文件中所有脚本的单行输出?如果是这样,那么你可以使用grep -v“pattern”
答案 2 :(得分:0)
您可以尝试在调试模式下运行脚本,如下所示:
bash -x ./script