连接stdin和命令输出

时间:2014-03-19 23:08:06

标签: bash shell

我想从stdin读取,然后连接stdin和它的转换版本。例如,连接stdin和它的反转,它由rev命令转换。

输入: hello

输出 hello \ nolleh

如何通过单线管道实现这一目标?

3 个答案:

答案 0 :(得分:7)

例如:

echo hello | tee >(rev)

>( )是bash进程替换。因此,tee写入子shell的stdin,其中rev被执行。 rev然后将反向写入stdout。并且tee也写了stdout未改变的stdin。

答案 1 :(得分:1)

如果你有/ proc文件系统,你可以这样做:

{ echo hello | tee /proc/self/fd/3 | rev; } 3>&1

答案 2 :(得分:0)

您可以使用read循环从标准输入读取。

echo hello | while read s; do echo -e "$s\n$(rev <<< "$s")"; done

或没有循环:

read s < <(echo hello); echo -e "$s\n$(rev <<< "$s")"