Como manipular a lógica de bifurcação em um script e manter a legibilidade? [fechadas]

2

Qual é a melhor maneira de ter um script que altera sua funcionalidade com base em um argumento?
Quer dizer, eu posso fazer:

if [ "$param" == "1" ];  then  
# do code here  
else  
# do compeletely different code here  
fi  

mas o que acontece quando o código é arbitrariamente grande?
Eu não espero alguma abordagem OO apenas uma boa abordagem para manter o script limpo

    
por Jim 11.10.2017 / 09:58

1 resposta

2

Isso é chamado de "ramificação", não de "bifurcação".

Você pode dividir o script em funções ou escrever sub-scripts totalmente separados que você chama de um script principal.

Usando funções:

handle_param_1 () {
    # do stuff for param == 1
}

handle_other_cases () {
    # do other stuff
}

# the above functions could be written in separate files
# that you source to import their definitions

case "$param" in
    1) handle_param_1 ;;
    *) handle_other_cases  ;;
esac

Usando scripts separados:

case "$param" in
    1) somewhere/handle_param_1 ;;
    *) somewhere/handle_other_cases  ;;
esac
    
por 11.10.2017 / 10:03