Faça um som se o comando durou mais de X minutos

1

Estou ciente de que já foi perguntado como fazer um som depois um comando .

Apesar de parecer que as pessoas pretendem usá-lo após comandos de longa duração, inicialmente não há nenhuma conexão entre o truque real e a duração do comando .

A minha pergunta aqui é, posso (usando bash ou zsh) fazer o meu terminal executar um script que envolve todos os comandos olhando start time e comparando quando termina em end time e se e somente se o comando durou mais de X minutos , o som é tocado?

Porque, na prática, esses comandos de longa duração são frequentemente novos e não há chance de eu prever isso todas as vezes!

Bônus : o som não deve ser reproduzido para comandos interativos (por exemplo, ssh xxx ), se for muito difícil, os critérios podem ser se o foco é dado à janela ou não.

Muito obrigado!

    
por Augustin Riedinger 13.02.2017 / 17:55

1 resposta

0

Obrigado pela idéia, pode ser útil para mim também no futuro e foi uma boa desculpa para aprender bash, desculpe por quaisquer erros comuns, apenas bateu este script em existência a partir de um monte de buscas do Google em menos de 15 min.

Uso: script.sh "command" 29 (29 é o tempo em segundos) e não implementei o comando real para fazer o som. Você tem que google a melhor opção para suas necessidades e substituí-lo

#!/bin/bash
eval $1 &
PID=$!
let "timer=0"
let "increase=1"
let "mtime=$2"
while true; do
    if [ "$(ps -p $PID -o pid=)" = "" ]; then exit; fi
    let "timer=timer+increase"
    if [[ timer -gt mtime ]]; then
        let "timer=0"
        let "increase=0"
        replaceme-with-sound-command
    fi
    sleep 1
done

E não, eu não conheço nenhum método para distorcer todos os comandos em algum outro cenário, na melhor das hipóteses, você pode remover a extensão e colocar o script acima em algum lugar em seu $ PATH com um nome curto como 'tm' para facilitar de acesso

    
por Samuel H. 13.02.2017 / 20:53