Shell Script pode ser considerado uma linguagem de programação, sem problemas, mas para ambientes
Linux. Principalmente pela sua intimidade ao sistema (Linux). Porem não é tão rápido em execução como programas compilados.
Obviamente esta 'diferença de velocidade' não é algo comprometedor a qualquer aplicação, apenas casos específicos, normalmente, aplicativos de maior porte e principalmente, é muito mais rápido que a execução manual dos comandos.
Qual a diferença entre código compilado e interpretado?
Código compilado:
Código compilado é o que está escrito em arquivos executáveis binários, pós-compilação, normalmente entregues ao usuário final.
É mais rápido, utiliza menos memória e possui outras particularidades e vantagens quando comparado a linguagem interpretada. Essas 'vantagens' são mais claras para grandes aplicações, exceto em casos específicos (java, flash), não é portável.
Em alguns casos necessita ser instalado de acordo com o hardware ou possuir acesso específico a controladores deste. Ele é mais facilmente, ligado ao HARDWARE.
Código interpretado:
Código interpretado é obtido em scripts, seja CGI ou PHP. São seqüências de instruções, comandos e funções que serão executadas por um interpretador. Possui uma maior facilidade em atualização e manutenção de erros devido ao tempo de compilação não utilizado.
É portável na maioria dos casos, pois ele é intimamente ligado ao SOFTWARE, no caso o interpretador, este sim, que será ligado, se necessário, ao HARDWARE. Novamente, salvo exceções que acessem recursos específicos de HARDWARE.
O ideal:
Idealmente em um sistema, seriam:
- Aplicações em sua maioria em código compilado;
- Estes devem ser utilizados em conjunto com scripts de automação de tarefas;
- Ambos sobre o controle do usuário e limitados e editados às necessidades reais do usuário, do sistema e do computador.