Interceptar e modificar comandos em scripts bash

3

Eu tenho alguns scripts e alguns comandos nos scripts são assim

./executable arg1 arg2 .. argn

Eu quero mudar o comando acima para

LD_PRELOAD=/some/lib ./executable my_arg1 my_argn arg1 arg2 argn; some_other_command

Uma maneira de alterar os scripts, mas eu não quero fazer isso, em vez disso, quero interceptar esses comandos, alterar esses comandos e executá-los. Como posso fazer isso?

    
por user 31.01.2015 / 20:27

1 resposta

4

Primeiro, mova o executável existente para um novo local:

mv ./executable ./executable.original

Em segundo lugar, crie um script de shell no local. Coloque os seguintes comandos em um novo arquivo chamado ./executable :

#!/bin/sh
LD_PRELOAD=/some/lib ./executable.original my_arg1 my_argn "$@"
some_other_command

O shell substituirá o encantamento "$@" por arg1 arg2 argn conforme fornecido pelo programa de chamada.

Em terceiro lugar, defina o bit de execução no seu novo arquivo:

chmod a+rx ./executable
    
por 31.01.2015 / 20:37