我有一个 for 循环,如下所示:
for inf from $filelist; do
for ((i=0; i<imax; ++i)); do
temp=`<command_1> $inf | <command_2>`
eval set -A array -- $temp
...
done
...
done
问题是,command_1
有点耗时,而且它的输出有点大(900MB 是最高的,取决于输入文件有多大)。因此,我将脚本修改为:
outf="./temp"
for inf from $filelist; do
<command_1> $inf -o $outf
for ((i=0; i<imax; ++i)); do
temp=`cat $outf | <command_2>`
eval set -A array -- $temp
...
done
...
done
有一点性能提升,但没有我想要的那么多,可能是因为磁盘 I/O 也是一个性能瓶颈。
只是好奇是否有办法保存 的stdout
输出command_1
,这样我就可以在不将其保存到物理磁盘文件的情况下重复使用它?