Combinando dois scripts bash adicionando flags

0

Eu tenho dois scripts que transformam o código de software v.1 para software v.2 e vice-versa. Estas são essencialmente muitas substituições sed .

Na maneira como os escrevi, eles aceitam dois argumentos: primeiro, o arquivo de entrada e o segundo, o arquivo de saída.

$ ./transform2new oldfile newfile

ou

$ ./transform2old newfile oldfile

Gostaria de mesclar os dois códigos e gerenciar a transformação com um sinalizador, por exemplo,

$ ./transform -n oldfile newfile
$ ./transform -o newfile oldfile

Pergunta

Como eu poderia escrever um único roteiro para alcançar o objetivo?

Felicidades.

    
por Dox 19.02.2014 / 01:31

1 resposta

2

Coloque o conteúdo de cada script em uma função e pronto. Trate essas funções como se fossem seus scripts (você pode iniciar as funções com argumentos). Por exemplo,

function transform2new() {
  # here the code from script one
}

function transform2old() {
  # here the code from script two
}

# here comes the new super script, that reads the arguments and the option:
if [ "$1" = "-n" ]; then
  transform2new "$1" "$2"
elif [ "$1" = "-o" ]; then
  transform2old "$1" "$2"
fi
    
por 19.02.2014 / 02:16