Existe uma maneira de usar uma função com um final?

1

Então, por exemplo, adicionar uma finalização ao comando exibiria a finalização:

function work* () {
     echo "$1";
}

export -f work*
$ working
ing
    
por Anton 11.09.2017 / 06:10

1 resposta

0

Talvez algo como o seguinte faça isso por você:

function work() {
    echo "${1#work}"
}
function err_work() {
    [ "${1#work}" != "$1" ] && work $*
}
trap "err_work \$BASH_COMMAND" ERR

A função err_work é então invocada em todos os erros de comando, para descobrir que o comando com falha inicia com "trabalho" e invoca a função work sem finalizar, com a linha de comandos inicial como argumentos.

É claro que o bash irá reclamar sobre o comando inicial antes de invocar a armadilha, o que parecerá um pouco feio; talvez haja uma maneira de desligar isso, embora eu não tenha encontrado nenhum

    
por 11.09.2017 / 07:46