强制unix程序输出重定向

强制unix程序输出重定向

我是 shell 脚本的新手,我想这应该很容易。无论如何,我不知道如何强制将程序的输出重定向到另一个程序的输入。我知道管道,你可以在那里做

program1 | program2

但就我的情况而言,我猜 program1 的输出已经重定向到其他地方(这是别人写的一个很长的脚本)。当我在单独的命令提示符上尝试时,结果符合预期,但当我将其放入脚本中时,program2会因缺少参数而感到不安。我能以某种方式强制执行吗?

答案1

恐怕这个问题没有简单的答案。首先,你必须找到 program1 将其输出重定向到的位置。为了给你一些提示,看看要搜索什么,

当你发现后,让程序1打印到标准输出。这样,程序1的输出将通过管道传输到程序2的输入。

正如你所说“对缺少参数感到不安”,也可能是程序 2 无法从 stdin 读取所有信息。当你使用程序 1 的输出作为程序 2 的参数时,尝试参数

program1 | xargs program2

相关内容