it-swarm.it

Come posso programmare un comando specifico?

(L'equivalente linux di TimeThis.exe)

Qualcosa di simile a:

timethis wget foo.com
Receiving foo.com  
...

wget foo.com took 3 seconds.
71
ripper234

Prova solo time invece di timethis.

Sebbene sia consapevole che spesso esiste una versione di Shell integrata nel tempo e una versione binaria, che darà risultati in diversi formati:

$ time wget -q -O /dev/null https://unix.stackexchange.com/

real    0m0.178s
user    0m0.003s
sys     0m0.005s

vs

$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps

A differenza del tuo programma "timethis", ottieni tre valori indietro. È suddiviso in Che cosa è "ora di sistema" quando si utilizza "ora" nella riga di comando , ma in breve: reale significa "orologio da parete", mentre l'utente e sys mostrano l'orologio della CPU tempo, suddiviso tra codice normale e chiamate di sistema.

103
mattdm

Utilizzando l'eseguibile time invece del built-in Shell, è possibile specificare il formato e i valori di output. Per esempio. ottenere il tempo reale trascorso insieme al nome del comando e ai parametri

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds

Si noti che must si specifica il percorso per time, altrimenti si utilizzerà per impostazione predefinita Shell integrata.

26
forcefsck

@galois: Le varie shell hanno una manciata di comandi "integrati" che hanno la precedenza su qualsiasi cosa nel percorso. Normalmente questo è vantaggioso; gli incorporati tenderanno a funzionare più velocemente (perché non si chiama un file esterno) e in genere danno il risultato desiderato (cioè, nel caso del comando time normalmente non ti interessa quale versione stai usando, a meno che tu non voglia usare il " --format "flag).

Quindi "tempo" senza caratteri speciali (come /) per farlo sembrare un percorso finirà per eseguire il built-in, indipendentemente dall'aspetto del PERCORSO.

Per forzare Shell a utilizzare il comando time esterno, è necessario fornire il percorso

0
Tom Payerle