J'ai écrit cette ligne pour montrer à MB en lecture / écriture toutes les 5 secondes.
#!/bin/bash
#iosum.sh
iostat -dmz 5 |\
awk 'BEGIN{rx=wx=0}{if($0 == ""){printf"%.1f %.1f\n",rx,wx}else if($0~/^Device:/){rx=wx=0}else{rx+=$3;wx+=$4}}'
Lorsqu'il est exécuté à partir de la ligne de commande, il fonctionne parfaitement
./iosum.sh
# wait
1.1 0.0
0.0 0.1
0.0 0.0
3.0 3.0
0.0 0.0
# ctrl-c
Cependant, lorsque j'essaie de mettre la sortie dans un fichier, je ne reçois rien
./iosum.sh > out.txt
# wait
# ctrl-c
cat out.txt
# nothing!
Ce qui donne?
fflush(stdout)
après l'impression a corrigé le problème.