如何使用 bash 将标准输出管道传输到脚本并写入终端?



我想将作业的输出通过管道传输到脚本以读取该标准输出行并完成操作并在终端上显示输出。

现在,我有这个..

ls | ./script.sh

这允许我的脚本在输出上运行,但不在终端上显示 ls 的结果。

我试过这个:

ls | tee ./script.sh

但这会LS 的输出覆盖 script.sh 的内容。

如何在终端上显示"ls"的输出,并在该输入上运行 script.sh 内容? 以下是我的 script.sh 的示例:

#!/bin/bash
while read line
do
echo line input
done

你可以做:

ls | tee /dev/tty | ./script.sh

或者,如果您想完全使用管道之前的 stdout,您可以 像这样:

{ ls | tee /dev/fd/3 | ./script.sh ; } 3>&1 #(3 is an semi-arbirtrary choice of fd)

相关内容

  • 没有找到相关文章

最新更新