"Quais são os pontos fortes do shell scripting que o tornam uma ferramenta indispensável em comparação ao Python?"
A concha não é indispensável. Por que você acha que existem tantos? bash, tcsh, csh, sh, etc., etc.,
Python é um shell. Não o que você usaria para executar todos os comandos, mas para scripts, é o ideal.
Python é mais ou menos uma parte padrão de todas as distros Linux.
Os shells mais tradicionais fazem muitas coisas.
Eles têm uma interface de usuário útil para executar comandos. Isso inclui comandos de uma linha onde o shell pesquisa seu PATH, bifurca e executa o programa solicitado. Também inclui pipelines, sequências e programas simultâneos (usando ;
, |
e &
), bem como alguns redirecionamentos (usando >
e <
).
Eles têm uma pequena capacidade parecida com uma linguagem de programação para executar scripts. Esta linguagem é bastante difícil de usar e extremamente ineficiente. A maioria das declarações nesta linguagem requer a bifurcação de um ou mais processos adicionais, desperdiçando tempo e memória.
Executar programas a partir do shell, redirecionar stderr para um arquivo de log e esse tipo de coisa é bom. Faça isso na casca.
Quase todo o resto pode ser feito de forma mais eficiente e clara como um script Python.
Você precisa de ambos . No entanto, você nunca deve escrever um script com instruções if ou loops em uma linguagem shell tradicional.