Execute um comando antes de qualquer comando de terminal [duplicado]

7

Existe uma maneira de executar um comando antes que qualquer comando do terminal seja executado?

Por exemplo:

> ls -ltr
> "Hello you ran ls -ltr" //this is what I would like to achieve
> ..output of ls -ltr will be here

É possível rodar para garantir que um eco seja executado antes de qualquer comando ser executado?

Obrigado

    
por mixiul__ 04.02.2016 / 18:56

2 respostas

9

Você pode querer definir uma DEBUG trap, que permite configurar o que é efetivamente um gancho pré-execução de maneira semelhante a zsh . Veja link .

    
por 04.02.2016 / 19:02
3

O Bash tem o conceito de atribuir uma função ao ps1, então o meu parece

export PROMPT_COMMAND='PS1=$(make_ps1); set_xterm_title'

em que make_ps1 é

    make_ps1()
    {
    if [ $? = 0 ];then
        echo '\[\e[${host_color}m\][\D{%F %T} \u@\h \W]\[\e[0m\]\n\$ '
    else
        echo '\[\e[7m\e[${host_color}m\][\D{%F %T} \u@\h \W]\[\e[0m\]\n\$ '
    fi
    }

você deve ser capaz de aproveitar isso para fazer o que quiser, mas ele será executado depois que o comando for executado, então isso pode não funcionar para o que você precisa.

    
por 04.02.2016 / 22:07

Tags