Shell Scripting - pipe e il ridirezionamento
-
21-08-2019 - |
Domanda
CocoaDialog di presentare un feedback durante l'esecuzione di uno script di download. Vorrei presentare una barra di avanzamento indeterminata, mentre il funzionamento dei comandi di noi che si svolgono. Questo è possibile convogliando testo CocoaDialog per la durata dell'operazione.
http://cocoadialog.sourceforge.net/documentation.html#progressbar_control
Ho pensato che avrei potuto farlo utilizzando un comando, nel seguente modo:
exec("curl -O $PATH_DOWNLOAD > $PATH_COCOADIALOG progressbar --indeterminate");
Ma questo non funziona.
Ecco uno script di shell più approfondita che lo fa un altro modo:
http://cocoadialog.sourceforge.net/examples/progressbar.sh.txt
Eventuali suggerimenti o consigli apprezzati.
Grazie,
matt
Soluzione
Questo funziona:
curl -O $PATH_DOWNLOAD 2>&1 | $PATH_COCOADIALOG progressbar --indeterminate
Altri suggerimenti
Si può fare a meno di named pipe. popen / pclose lei ha citato consente di comunicare con il processo attraverso un anonimo. Named pipe davvero necessario solo quando si tratta di processi (padre / figlio) non correlati.
In questo modo:
$ pipe = popen ( "| nameOfTheExecuable"); scrivere ($ pipe, "Qualcosa"); .... pclose ($ pipe);
$ tubazione è la maniglia è possibile utilizzare per scrivere al standard input del vostro sub-processo.