2009-07-15 20 views
14

solo non c'è un'opzione per il comando CURL per mostrare solo un'uscita percentuale di sborsare piuttosto che tutto questo, per esempio:CURL Progress - Mostra Percentuale

% Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 12.4M 100 12.4M 0  0 4489k  0 0:00:02 0:00:02 --:--:-- 4653k 

Forse c'è una bandiera posso impostare? In caso contrario, collegarlo in qualche modo attraverso un'espressione regolare per mostrarmi un aggiornamento continuo della percentuale solo?

Grazie a tutti

+0

Se si sta analizzando il valore inviato, cosa si sta utilizzando per farlo? Potresti prendere in considerazione l'uso di http://en.wikipedia.org/wiki/Expect per creare un'utilità wrapper: nascondere tutta la complessità dell'analisi nello script Expect e produrre solo ciò di cui hai bisogno. – Godeke

+0

Sto usando la funzione popen di PHP e sto salvando l'output in un file di testo. Sto dando un'occhiata al tuo link di riferimento, sembra abbastanza complicato! – Abs

risposta

20

Due modificatori potrebbero aiutare, anche se nessuno dei due è esatto: --silent sopprimerà tutti gli aggiornamenti e --progress-bar mostrerà solo una barra di avanzamento.

Modifica: un'opzione per rendere le cose più semplici sarebbe quella di creare un wrapper utilizzando Expect per semplificare l'output per lo script della shell o per qualsiasi cosa stia ascoltando il ricciolo.

6

Ha il parametro -# risolto il problema?

- #/- progress-bar

Fai ricciolo di visualizzazione delle informazioni di avanzamento come una barra di avanzamento invece dei statistiche predefinite.

Da here.

+0

Sembra interessante ma ho intenzione di catturare la percentuale, c'è un modo per non essere così interattiva? – Abs

+0

Non ho installato CURL per testarlo, ma penso che questo mostri un tipo di barra e la percentuale nel mezzo (o altrove). Puoi pipe questo e filtrare i numeri per ottenere la percentuale? – schnaader

+0

Le mie capacità da linea di comando non sono esattamente buone! Ma ho provato a trasmettere l'output a questo "| grep -o '[0-9] *'" - tuttavia non è venuto fuori nulla. Anche se lo facesse, lo farebbe continuamente man mano che il numero cambia? Forse è necessario utilizzare un ciclo? – Abs

7

Si potrebbe provare l'opzione -#.

Mostra una barra di avanzamento e una percentuale scaricati.