Ho uno script Perl che svolge alcune attività, una delle quali è chiamare un comando system
a "tar -cvf file.tar....."
.Mostrare i progressi mentre si esegue un comando system() in Perl
Questo spesso può richiedere un certo tempo così mi piacerebbe la riga di comando per eco indietro di un indicatore di progresso, qualcosa di simile a un #
eco torna alla schermata, mentre la chiamata system
è in corso.
Ho fatto un po 'di scavo e sono incappato in fork
. È questo il modo migliore per andare? È possibile sborsare il comando system
, quindi creare un ciclo while che controlla lo stato del $pid
restituito dalla forcella?
Ho anche visto i riferimenti a waitpid
.... Sto indovinando che ho bisogno di usare anche questo.
fork system("tar ... ")
while (forked process is still active) {
print #
sleep 1
}
Sto abbaiando dall'albero sbagliato?
Molte grazie John
Il valore di ritorno di 'fork' è l'ID di processo del figlio, se è il genitore, o 0 se è il figlio, o undef se la forcella non è riuscita. Vedi forldoc -f fork. –