Beräkna hur lång tid ett bash-script tar

Jag har länge tänkt att jag ska fixa en tid-tagning för några av mina bash-script, men det har aldrig blivit av, förrän nu.

Jag har egentligen inte gjort så mycket själv, annat än att Googla efter rätt information. Jag sökte med ”bash calculate time difference” och då hittade jag följande länk.

# sTime - indicates start of execution
# eTime - indicates end of execution
# dTime - indicates difference between sTime and eTime
# at the end of the script I calculate time for execution

sTime=$(date +"%s")
# här ligger det skript jag har som jag vill beräkna tiden den tar på sig
eTime=$(date +"%s")
dTime=$(($eTime-$sTime))
echo ""
echo ""
echo "##########################"
echo "Time: $(($dTime / 3600 )) hours $((($dTime % 3600) / 60)) minutes $(($dTime % 60)) seconds"
echo "##########################"
echo ""

Något jag upptäckte var att det är kritiskt med blanktecken och parenteser på olika platser. Tex sTime=$(date +"%s") behöver ett mellanslag mellan date och +. Jag skrev första gången ihop dessa och då fungerade det inte. Jag tyckte först inte att det behövdes dubbla parenteser runt beräkning av dTime, men se det fick jag också ångra.

Du kan så klart använda andra namn på variablerna och annan text. Och ja, jag försöker så gott det går att använda engelska när jag skriver kommentarer i min kod. Det går inte att komma från att svenska är ett udda språk för oss som är utvecklare. Då 99% av all hjälp som finns att få på nätet skrivs på engelska så är det bara naturligt att fortsätta på den vägen.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *