Quando você está automatizando alguma tarefa, por exemplo, empacotando seu aplicativo para o Docker, muitas vezes você se encontra escrevendo scripts shell. Você pode ter um bash script para conduzir o processo de empacotamento e outro script como ponto de entrada para o contêiner. A medida que seu empacotamento cresce em complexidade, o mesmo acontece com seu script shell.
Tudo funciona bem.
E então, um dia, seu script shell faz algo completamente errado .
É aí que você percebe seu erro: bash, e linguagens de script de shell em geral, são fracas por padrão. A menos que você seja muito cuidadoso desde o primeiro dia, qualquer script shell acima de um certo nível de complexidade é quase garantido ter bug… e adaptar os recursos de correção é bastante difícil.
Siga o link para o artigo completo em: https://pythonspeed.com/articles/shell-scripts/