在单行bash管道中将标头添加到stdout流

时间:2013-10-31 20:29:12

标签: bash

我正在尝试向stdout流添加标头。我能想到的最好的是使用临时文件和cat的连字符选项。如何将其转换为单线管道?感谢。

python myscript.py myparm > tmp
echo 'a,b,c' | cat - tmp  > output

3 个答案:

答案 0 :(得分:7)

{ echo 'a,b,c'; python myscript.py myparm; } > output

不需要临时文件或不必要的cat

答案 1 :(得分:5)

您可以使用process substitution

echo 'a,b,c' | cat - <(python myscript.py myparm)  > output

或:

cat <(echo 'a,b,c') <(python myscript.py myparm)  > output

答案 2 :(得分:0)

这是我用来通过cgi脚本中的gzip管道数据的方法。 while循环中的所有内容都会通过输出,除非您在循环中专门重定向它(这可能非常有用)。

RUNONCE=""
while ([ ! "$RUNONCE" ]) do
  RUNONCE=true
  echo stuff
  exec stuff
  cat stuff
  #whatever you want
done >output