GNU/Linux >> Znalost Linux >  >> Linux

Uložte do proměnné počet sekund, po které proces trval

Chcete tento kód vložit do skriptu, nebo to udělat z procesu, který skript spouští?

Pro poslední možnost můžete použít vyhrazené slovo „čas“ a poté analyzovat, co vrací, abyste zjistili, kolik času skript zabere.

Chcete-li to provést ze skriptu, můžete nastavit proměnnou SECONDS na nulu a pokaždé, když na tuto proměnnou odkazujete, bude aktualizována na počet uplynulých sekund. Takže můžete zadat "SECONDS=0" na úplný začátek skriptu a kdykoli budete potřebovat uplynulý čas, bude to v proměnné SECONDS.

Můžete také použít trik $SECONDS na příkazovém řádku, například:

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

Časově vyhrazené slovo a proměnná SECONDS jsou zdokumentovány v manuálové stránce bash.


Funguje to v Bash a také 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
  • První dvě přesměrování skrývají výstup vašeho procesu ">/dev/null 2>&1"
  • Poslední přesměrování je potřeba, protože "time" vypíše čas na stderr

Linux
  1. Jak získat vlastní IP adresu a uložit ji do proměnné ve skriptu Shell?

  2. Maximální hodnota ID procesu?

  3. Je Shell přenosný ke spuštění příkazu na stejném řádku po přiřazení proměnné?

  1. Proč Rsync trvá na tom, že je rozdíl, když jej spustím podruhé?

  2. Stavy procesu Linuxu

  3. Jak zjistit čas zahájení dlouhotrvajícího linuxového procesu?

  1. Jak zajistím, aby můj webový server Golang běžel na pozadí?

  2. Jak mohu spočítat počet znaků v proměnné Bash

  3. Jak naplánovat spuštění tcpdump na konkrétní časové období?