我正在处理一个脚本,首先调用一个嘈杂的程序(在stdout
和stderr
上都有很多诊断信息),然后使用其他工具处理其输出。
该程序的冗长使得无法简单地将其stdout
发送到管道中,因此目前我们使用一个临时文件——一种我想结束的做法。
我们可以要求该程序将数据写入/dev/fd/N
,而不是/tmp/foo
——这样做没有问题(例如,它不需要seek
文件)。
当前发送到stdout
和stderr
的噪音可以继续存在——操作员已经习惯了它,如果它消失了,他们会感到惊慌……
但是,我该如何安排描述符N
的存在并将其发送到下一个程序的stdin
中?
noisy -o /dev/fd/N ?????| filter -i /dev/stdin
如果需要使用 bash
,那就用吧,但我更希望有一个适用于整个sh家族的解决方案。