Introdução
O estudo de algoritmos, é de fundamental importância para o desenvolvimento da lógica de programação e, consequentemente, o aprendizado e domínio de uma linguagem de programação.
Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, ou seja, um conjunto de instruções executadas passo a passo, necessários para executar uma tarefa.
Outra definição muito interessante de algoritmo:
"Um algoritmo tem por objetivo, representar mais fielmente o raciocínio envolvido na lógica de programação e, desta forma, permitir-nos abstrair de uma série de detalhes computacionais, que podem ser acrescentados mais tarde." [1]
Utiliza-se algoritmos para resolver problemas reais de forma abstrata com o auxílio de uma linguagem de programação ou até mesmo por fluxogramas, que são gráficos que demonstram a sequência operacional do desenvolvimento de um processo.
Este processo pode ser a troca de uma lâmpada, calcular a média aritmética de alunos, o espaço percorrido por um carro, entre outros.
A figura 1, mostra um exemplo de um algoritmo representado por um fluxograma:
O Shell Script
O shell, nada mais é, do que um mediador entre o usuário e o kernel do sistema operacional. Este, interpreta a entrada de comandos por meio da linguagem bash, também conhecido como shell. O bash (Bourne Again Shell), é o shell mais utilizado em modo texto em sistemas
GNU/Linux.
Shell Script é utilizado para combinar vários comandos em um único arquivo, onde este deverá ter permissão de execução. Estes scripts são frequentemente usado como ferramenta de configuração e instalação em sistemas operacionais.
Possui características de linguagens de programação, como:
- Estrutura de decisão;
- Estrutura de repetição;
- Funções e argumentos;
- Definições de variáveis.
Abaixo, uma lista com os principais shells utilizados em ambientes Unix e Unix Like[1]:
- Bourne Shell (sh): Desenvolvido por Stephen Bourne do Bell Labs (da AT&T, onde também foi desenvolvido o Unix), foi durante muitos anos o shell padrão do sistema operacional Unix. É também chamado de Standard Shell por ter sido durante vários anos o único, e é até hoje o mais utilizado. Foi portado para praticamente todos os ambientes Unix e distribuições GNU/Linux.
- Korn Shell (ksh): Desenvolvido por David Korn, também do Bell Labs, é um superconjunto do sh, isto é, possui todas as facilidades do sh e a elas agregou muitas outras. A compatibilidade total com o sh vem trazendo muitos usuários e programadores de shell para este ambiente.
- Boune Again Shell (bash): Desenvolvido inicialmente por Brian Fox e Chet Ramey, este é o shell do projeto GNU. O número de seus adeptos é o que mais cresce em todo o mundo, seja porque ele é o Shell padrão do Linux, seja por sua grande diversidade de comandos, que incorpora inclusive diversos comandos característicos do C Shell.
- C Shell (csh): Desenvolvido por Bill Joy, da Universidade de Berkley, é o shell mais utilizado em ambientes BSD. Foi ele quem introduziu o histórico de comandos. A estruturação de seus comandos é bem similar à da Linguagem C. Seu grande pecado, foi ignorar a compatibilidade com o sh, partindo por um caminho próprio.