GNUパラレル出力と組み合わせた/ usr / bin / timeがコマンド出力以降ではなく以前に結果を生成するのはなぜですか?

GNUパラレル出力と組み合わせた/ usr / bin / timeがコマンド出力以降ではなく以前に結果を生成するのはなぜですか?

想像する:

$ cat libs.txt
lib.a
lib1.a

$ cat t1a.sh
f1()
{
        local lib=$1
        stdbuf -o0 printf "job for $lib started\n"
        sleep 2
        stdbuf -o0 printf "job for $lib done\n"
}
export -f f1
/usr/bin/time -f "elapsed time %e" cat libs.txt | SHELL=$(type -p bash) parallel --line-buffer --jobs 2 f1

$ bash t1a.sh
elapsed time 0.00
job for lib.a started
job for lib1.a started
job for lib.a done
job for lib1.a done

elapsed time 0.00ここの外観が見えます今後コマンドの出力です。なぜ?

elapsed time 0.00表示する方法後ろにコマンドの出力?

ベストアンサー1

努力する:

cat libs.txt | SHELL=$(type -p bash) /usr/bin/time -f "elapsed time %e" parallel --line-buffer --jobs 2 f1

おすすめ記事