C'est pas possible directement, car il faudrait que dcfldd renvoie en sortie un pourcentage pour le donner à zenity.
Donc je te donne une autre méthode pour faire ça (en gros) :
- Trouver un moyen de connaître la taille du fichier final avant de lancer dcfldd (pas trop dur, c'est la taille du DVD à récupérer d'une manière ou d'une autre.
- Ensuite, fournir zenity avec le retour de la commande
du executé sur le fichier test.iso qui est en train d'être écrit. Voici un script bash qui fait ça (toute les demi secondes, il effectue la division de la taille courante (calculée par du) par la taille totale, convertit le tout en pourcentage (via bc car bash ne gère pas les float).
#!/bin/bash
while true
do
#taille courante en octets du fichier test.iso en traind d'être écrit...
c=`du -b test.iso | cut -f 1`
#taille totale à déterminer via une commande à trouver (en octets)
t=4699717632
#chaîne contenant l'expression qui sera interprété par la calculatrice bc
percent="100*$c/$t"
#calcul via bc en interprétant la chaîne percent
out=`echo "$percent" | bc -l`
#résultat sur la sortie standard, car zenity lit en entrée un pourcentage...
echo $out
#faire ça toutes les demi secondes
sleep 0.5
done
Ensuite, il suffira de fournir à zenity --progress la sortie de ce script (que j'ai appelé size.sh ici) ainsi :
(./size.sh) | zenity --progress
Bon à ajuster selon ton cas, j'ai pas vérifié les effets de bords (comment sortir de la boucle à la fin, etc...) mais bon tu as l'idée.
ps : et du coup l'histoire de la commande dcfldd ne sert plus à rien, tu peux même continuer à utiliser la commande standard dd 😉