将 linux 命令行传递给两个可执行文件

pass a linux command line into two executables

我有一个从命令行读取其输入的 C 程序,我想将 ls | wc -m 命令的输出提供给可执行文件,因为我需要调用可执行文件的两个实例 (./a.out1 , ./a.out2) 使用相同的输入并使它们 运行 并行(管道?)。

提前感谢您的帮助!

你说你想使用管道,所以首先你需要调整你的程序以从 stdin 而不是 argcargv 读取输入。通过管道传递的输入添加到命令行参数列表。

要将一个进程的 stdout 传送到多个其他进程,您可以使用 teeprocess substitutions:

ls | wc -m | tee >(./a.out1) >(./a.out2) >/dev/null

但是,我不清楚为什么你要求它被管道传输(而不是作为参数传递)的原因,所以按照评论中的建议将输出存储在一个变量中同样适用于你举的例子。