Encontrando a duração de uma sessão de terminal

1

Estou tentando criar meu próprio script bash para produzir o tamanho da sessão de terminal atual, bem como fazer várias outras coisas com esse tamanho.

O problema que estou encontrando é no script ...

#!/bin/bash

SESSIONLENGTH=$(echo $SECONDS)
echo $SESSIONLENGTH

... outra instância do bash shell (ou pelo menos eu acredito que isso é o que está acontecendo) é criada, na qual seu próprio valor $SECONDS está sendo atribuído a $SESSIONLENGTH em vez do valor $SECONDS do shell que está executando o script.

Então, minha pergunta, como eu retorno a duração da sessão atual dentro de um script?

    
por Trevor Sears 25.07.2016 / 03:59

1 resposta

2

Você pode fazer

source /path/to/script

ou

. /path/to/script

Para executar os comandos no script na sessão bash atual. Nota: não chame exit do script nesse caso, pois ele terminará sua sessão atual (provavelmente antes que você possa ver a hora em que o emulador de terminal fecha na saída do shell).

Por outro lado, se você está apenas medindo o tempo da sessão, você também pode fazer:

time bash

E assim que você sair da sessão bash , o tempo gasto nela será impresso. Isso é portátil em vários shells (não apenas bash e zsh , que possuem $SECONDS ).

    
por 25.07.2016 / 04:19