Можно ли поместить $SECONDS в переменную окружения в скрипте bash?

Можно ли поместить $SECONDS в переменную окружения в скрипте bash?

Мне бы хотелось иметь возможность отображать $SECONDSчасы, минуты и секунды в переменной окружения, чтобы мне нужно было использовать ее только $RUNTIMEв разных местах скрипта, а не использовать ее целиком каждый раз, когда я захочу ее использовать.

Я не знаю, какое форматирование использовать, чтобы можно было поместить его в переменную:

export RUNTIME="$(($SECONDS / 3600))hrs $((($SECONDS / 60) % 60))min $(($SECONDS % 60))sec"

Поэтому я могу просто:

echo "The script ran for: $RUNTIME"

Спасибо.

решение1

functionОпределение RUNTIME как переменной не поможет, так как она выводит постоянное значение, всегда время выполнения, когда она была определена. Попробуйте вместо этого оболочку :

runtime() { 
   printf "%dhrs %dmin %dsec\n" $((SECONDS / 3600)) \
                                $(((SECONDS / 60) % 60)) \
                                $(($SECONDS % 60)); 
}
runtime

и вызвать/использовать его с помощью «подстановки команд».

Связанный контент