bash - 在过滤输出时执行另一个命令
问题描述
我有一个二进制文件foo
,我将其包装在一个foo.sh
shell 脚本中以进行一些设置。我的包装脚本的最后一行是:
exec foo "$@"
这很好用。foo
接管我的 tty 并运行,就好像它最初被调用而不是foo.sh
.
现在,我想做和今天一样的所有事情,但是grep
从foo
's 的输出中删除一些行(它变得越来越冗长)。如果我像这样运行它:
foo "$@" | grep -v "filtered"
然后foo
现在会认为它不在交互模式下,并开始表现与以前不同。我的意思是,这是正确的,它的输出不再是终端,但最终它会在终端中结束,所以我希望它有这种感觉。
有没有一种很好的便携方式来完成这种过滤?我不知道是否grep
需要更改或调用foo
是否需要更改。
(如果需要上下文,foo
在我的示例中是 isbazel
和foo.sh
is tools/bazel
)。
解决方案
推荐阅读
- javascript - 在 DOMContentLoaded 之后先加载 jQuery
- javascript - 当ANTD select组件中有datePicker被选中时,如何让这个datePicker可编辑
- r - 在欧洲防风草模型上使用 VIP 包计算重要性度量
- google-chrome-extension - 同时针对 Google Chrome 和 Edge Chromium 时,我应该何时启动本机消息主机?
- python - 在 C 中使用函数时将参数传递给 scipy.LowLevelCallable
- c++ - 如何覆盖具有不同返回类型的虚拟方法?
- react-native - React-navigation v5:将函数作为参数传递给 headerRight 按钮
- c++ - 带有实现和头文件的 Makefile
- sql - Excel 是否类似于 SQL“除外”?
- c++ - 字符串数组中最长公共子字符串运行时问题