GNU/Linux >> Linux Esercitazione >  >> Linux

Salva in una variabile il numero di secondi che un processo ha impiegato per essere eseguito

Vuoi inserire questo codice nel tuo script o farlo dal processo che avvia lo script?

Per quest'ultimo, puoi usare la parola riservata "time" e quindi analizzare ciò che restituisce per ottenere quanto tempo impiega uno script.

Se si desidera eseguire questa operazione all'interno di uno script, è possibile impostare la variabile SECONDS su zero e ogni volta successiva che si fa riferimento a tale variabile verrà aggiornata per essere il numero di secondi trascorsi. Quindi, puoi inserire "SECONDS=0" proprio all'inizio del tuo script, e ogni volta che avrai bisogno del tempo trascorso sarà nella variabile SECONDS.

Puoi anche usare il trucco $SECONDS sulla riga di comando, ad esempio:

$ SECONDS=0; sleep 5 ; echo "that took approximately $SECONDS seconds"

La parola riservata al tempo e la variabile SECONDS sono entrambe documentate nella pagina man di bash.


Funziona in Bash e anche in Zsh:

# Set time format to seconds
TIMEFORMAT=%R
# Time a process
PROC_TIME=$(time (insert command here >/dev/null 2>&1) 2>&1)
echo $PROC_TIME
  • I primi due reindirizzamenti nascondono l'output del tuo processo ">/dev/null 2>&1"
  • L'ultimo reindirizzamento è necessario perché "time" stampa l'ora su stderr

Linux
  1. Come ottenere il proprio indirizzo IP e salvarlo in una variabile in uno script di shell?

  2. Il valore massimo dell'ID di processo?

  3. È Shell Portable eseguire un comando sulla stessa riga dopo l'assegnazione di variabili?

  4. Stati del processo Linux

  5. Come ottenere l'ora di inizio di un processo Linux di lunga durata?

L'indicatore dell'ora non mostra la data/l'ora?

Esiste un comando in Linux per conoscere il numero del processore in cui viene caricato un processo?

Time il tempo di esecuzione di più comandi

Se conosco il numero PID di un processo, come posso ottenere il suo nome?

Come posso ottenere l'ora dell'orologio da parete di un processo in esecuzione?

Esegui AVD e VirtualBox contemporaneamente