我想从stdin读取,然后连接stdin和它的转换版本。例如,连接stdin和它的反转,它由rev
命令转换。
输入: hello
输出 hello \ nolleh
如何通过单线管道实现这一目标?
答案 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")"