Как измерить продолжительность в секундах в сценарии оболочки?

Я хочу узнать, сколько времени занимает операция в сценарии оболочки Linux. Как я могу это сделать?

66 голосов | спросил Zubair 1 MarpmTue, 01 Mar 2011 12:51:35 +03002011-03-01T12:51:35+03:0012 2011, 12:51:35

5 ответов


0

Использование команды time, как предлагали другие, - хорошая идея.

Другой вариант - использовать волшебную встроенную переменную $ SECONDS, которая содержит количество секунд с момента начала выполнения скрипта. Вы можете сказать:

START_TIME=$SECONDS
dosomething
ELAPSED_TIME=$(($SECONDS - $START_TIME))

Я думаю, что это зависит от bash, но, поскольку вы работаете в Linux, я предполагаю, что вы используете bash.

ответил Tom Anderson 1 MarpmTue, 01 Mar 2011 13:08:50 +03002011-03-01T13:08:50+03:0001 2011, 13:08:50
0

Используйте команду time. time ls /bin

ответил Keith 1 MarpmTue, 01 Mar 2011 12:54:11 +03002011-03-01T12:54:11+03:0012 2011, 12:54:11
0

Попробуйте следующий пример:

START_TIME=$SECONDS
# do something
sleep 65

ELAPSED_TIME=$(($SECONDS - $START_TIME))

echo "$(($ELAPSED_TIME/60)) min $(($ELAPSED_TIME%60)) sec"    
#> 1 min 5 sec
ответил Wolfram Aulenbach 5 Maypm11 2011, 18:03:57
0

Вот скрипт для определения времени, прошедшего в миллисекундах. Замените строку сна 60 кодом, который вы хотите выполнить.

a=0
while [ $a -lt 10 ]
do
START_TIME=`echo $(($(date +%s%N)/1000000))`
sleep 3
END_TIME=`echo $(($(date +%s%N)/1000000))`
ELAPSED_TIME=$(($END_TIME - $START_TIME))
echo $ELAPSED_TIME
if [ $a -eq 10 ]
then
  break
fi
a=`expr $a + 1`
done
ответил user3300239 24 MarpmTue, 24 Mar 2015 13:42:36 +03002015-03-24T13:42:36+03:0001 2015, 13:42:36
0

Просто чтобы помочь любому, как я, который получил ошибку:

 arithmetic expression: expecting primary: "-"

Проверьте свой шеллскрипт, который должен начинаться с:

#!/bin/bash

Ура!

ответил rafa.ferreira 19 Jam1000000amThu, 19 Jan 2012 05:53:33 +040012 2012, 05:53:33

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132