Posso colocar $ SECONDS em uma variável de ambiente em um script bash?

Posso colocar $ SECONDS em uma variável de ambiente em um script bash?

Eu gostaria de poder mostrar $SECONDShoras, minutos, segundos em uma variável de ambiente, então só preciso usar, por exemplo, $RUNTIMEem vários lugares do script, em vez de ter tudo sempre que quiser usá-lo.

Não sei qual formatação usar para permitir a entrada em uma variável:

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

Então posso simplesmente:

echo "The script ran for: $RUNTIME"

Obrigado.

Responder1

Definir RUNTIME como uma variável não ajudaria, pois gera um valor constante, sempre, o tempo de execução quando foi definido. Experimente um shell functionno lugar:

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

e chame-o/use-o com uma "substituição de comando".

informação relacionada