Programar em Shell - Script só para os baixinhos
Vira e mexe eu ouço uma velha frase: Shell Script é a linguagem mais fácil que pode existir, é muito fácil programar em Shell. Essa afirmação é correta com certeza, a sintaxe é de fácil entendimento, porém, assim como toda linguagem de programação, ela é complexa também, temos que ser realistas. Muitos programam em Shell, mas poucos realmente dominam. Este artigo vem para fortalecer o fórum do VOL e os iniciantes, a intenção é para ajudar aos iniciantes a escolher esta linguagem como a primeira, já que ela é simples, poderosa e complexa.
Parte 3: Barreiras
Existem barreiras quando se programa Shell? Claro, vou te explicar.
A grande barreira para os iniciantes nesta linguagem, é que precisam além de aprender a estrutura desta linguagem, o que é normal em qualquer linguagem, ainda precisam conhecer os comandos do mesmo, já que praticamente qualquer programinha que você fizer, irá utilizar comandos do Linux/Unix para tornar seu programa usável.
Um probleminha chato, são as diferenças que existem em cada Shell, você provavelmente vai começar a programar com o Bash, já que este está presente em 90% das distribuições Linux, salvo a Emmi, que é meu projeto que é Fish padrão (haha), mas os seus scripts não vão rodar perfeitamente no Fish, ou KSH, sendo feitos em cima do Bash, acostume-se.
Isso dificulta um pouco quando você resolve deixar o seu programinha publicamente, o usuário ou você mesmo terá que fazer versões diferentes. É só ajustar o shebang (não seja pornográfico, rapaz malicioso) chamando outro shell, #!/bin/ksh ou /bin/fish, tem certeza?
Será que todo script vai rodar certinho? Cada um tem sua particularidade, eu aposto que não vai rodar certo ainda mais se o programa é mais complexo, então, tome cuidado e sempre especifique em qual base shell foi feita.
E se o programa for bem estruturado e mais complexo, faça em outras bases também, isso é bacana apesar que vai te exigir mais mãos para ajustar bugs! Mas esqueça isso no começo, apenas já alertando!
Outra grande barreira, é a questão que todos comandos têm mais de um caminho que se pode seguir, ou seja, em cada momento, em cada programa, ou talvez no mesmo, você usará algo diferente, que te levará ao mesmo caminho! Porém, alguns fazem todo um círculos e outros são diretos!
Quer um exemplo bem fácil?
Eu quero que toda entrada de dados (input) que o usuário der, se converta em letras maiúsculas. Fácil!
Mas, pra que essa curva toda? Podemos usar simplesmente o TYPESET com a opção "-l" (menos ÉLE), ficando:
Foi mais direto, não foi? Existem outras 10 maneiras para fazer isto! Então, cabe ao programador decidir o que usar e como usar. Há momentos que um comando se encaixa melhor, isto depende da ocasião.
A grande barreira para os iniciantes nesta linguagem, é que precisam além de aprender a estrutura desta linguagem, o que é normal em qualquer linguagem, ainda precisam conhecer os comandos do mesmo, já que praticamente qualquer programinha que você fizer, irá utilizar comandos do Linux/Unix para tornar seu programa usável.
Um probleminha chato, são as diferenças que existem em cada Shell, você provavelmente vai começar a programar com o Bash, já que este está presente em 90% das distribuições Linux, salvo a Emmi, que é meu projeto que é Fish padrão (haha), mas os seus scripts não vão rodar perfeitamente no Fish, ou KSH, sendo feitos em cima do Bash, acostume-se.
Isso dificulta um pouco quando você resolve deixar o seu programinha publicamente, o usuário ou você mesmo terá que fazer versões diferentes. É só ajustar o shebang (não seja pornográfico, rapaz malicioso) chamando outro shell, #!/bin/ksh ou /bin/fish, tem certeza?
Será que todo script vai rodar certinho? Cada um tem sua particularidade, eu aposto que não vai rodar certo ainda mais se o programa é mais complexo, então, tome cuidado e sempre especifique em qual base shell foi feita.
E se o programa for bem estruturado e mais complexo, faça em outras bases também, isso é bacana apesar que vai te exigir mais mãos para ajustar bugs! Mas esqueça isso no começo, apenas já alertando!
Outra grande barreira, é a questão que todos comandos têm mais de um caminho que se pode seguir, ou seja, em cada momento, em cada programa, ou talvez no mesmo, você usará algo diferente, que te levará ao mesmo caminho! Porém, alguns fazem todo um círculos e outros são diretos!
Quer um exemplo bem fácil?
Eu quero que toda entrada de dados (input) que o usuário der, se converta em letras maiúsculas. Fácil!
read -p var "Entre com os dados: "; | tr '[:lower:]' '[:upper:]'
Mas, pra que essa curva toda? Podemos usar simplesmente o TYPESET com a opção "-l" (menos ÉLE), ficando:
typeset -l var
Foi mais direto, não foi? Existem outras 10 maneiras para fazer isto! Então, cabe ao programador decidir o que usar e como usar. Há momentos que um comando se encaixa melhor, isto depende da ocasião.
Gostei muito do artigo
Isso me inspirou bastante, Valeu mesmo, eu tava precisando ler algo assim.
LMC