Como disparar um segundo comando quando um comando específico é executado no shell?

4

Vou explicar minha pergunta com um exemplo.

Eu corro $ python manage.py para realizar alguma ação.

Eu quero executar outro comando $ xyz , apenas quando qualquer usuário executar o comando anterior.

Assim, a partir de agora, sempre que o usuário executar $ python manage.py

Deve funcionar como:

$ python manage.py && xyz

Eu pensei em criar um alias. Mas a variável alias não pode ter espaço entre elas?

    
por yask 29.01.2016 / 13:56

1 resposta

14

Você poderia colocar um wrapper de shell em torno de uma chamada para python (coloque isso em .zshrc ou .bashrc ... dependendo do seu shell),

python () {
    if [ "$1" = manage.py ]; then
        command python manage.py && xyz
    else
        command python "$@"
    fi
}

Mas suspeito que é melhor você alterar manage.py para executar xyz no final (consulte a biblioteca de subprocessos python) ou criar um script de shell,

manage.sh :

#! /bin/sh
python manage.py && xyz
    
por 29.01.2016 / 14:06

Tags