Alguém sabe como colocar um comando 'time' antes de cada comando em uma sessão do bash?
Alguém sabe como colocar um comando 'time' antes de cada comando em uma sessão do bash?
Respostas:
Desculpe pela resposta errada antes, não entendi sua pergunta.
Para ter o tempo adicionado antes de cada comando que você executa no shell, você pode fazer algo como isto
bind 'RETURN: "\e[1~time \e[4~\n"'
Isso religará a chave de retorno. Agora, toda vez que você pressionar return, em vez de escrever uma nova linha \ n, ela irá para o início da linha, digite o texto 'time' e um espaço, vá para o final da linha e digite a nova linha \ n, produzindo assim a desejada efeito.
Se você não quiser sacrificar sua tecla Enter, poderá criar uma segunda chave de referência como F12, vinculando o comando como este
bind '"\e[24~": "\e[1~time \e[4~\n"'
Agora, em vez de substituir a chave de retorno, você vincula F12.
O pano de fundo de tudo isso é que o bash usa a GNU readline para ler comandos. Portanto, o readline seria um bom ponto de partida para mais manipulação de comandos, etc.
Sei que isso está fora do escopo desta pergunta, mas ...
Em zsh
(que, é do meu conhecimento, um super conjunto de bash) se você definir a seguinte variável em seu .zshrc
arquivo:
export REPORTTIME=5
Todo comando que leva mais de 5 segundos (tenho certeza) exibirá a saída de time
. Todos os comandos que são concluídos mais rapidamente não são. E nesses casos, realmente não se importa, por isso é bom não bagunçar as coisas. Também existem muitos outros recursos interessantes zsh
que você pode aproveitar enquanto está nisso.
Inclua \ t na sua string de prompt. Isso incluirá o horário no seu prompt no ponto em que você o incluir. Consulte: http://www.ibm.com/developerworks/linux/library/l-tip-prompt/
PS1 parece ser a maneira padrão de fazer algo assim.
time
faz (mede quanto tempo levou para que um comando fosse executado).