O documento apresenta um curso gratuito de Shell Script do básico ao intermediário ministrado por Wanderlei Silva do Carmo. A agenda inclui tópicos como histórico do Shell, variáveis, estruturas condicionais e de repetição, operadores aritméticos e redirecionamento de entrada e saída. O curso visa compartilhar conhecimento sobre a linguagem Shell Script e seu amplo uso em ambientes Unix.
1. Curso gratuito de Shell Script
Wanderlei Silva do Carmo
<wander.silva@gmail.com>
Do básico ao intermediárioDo básico ao intermediário
2. Apresentação
● Meu nome é Wanderlei Silva do Carmo;
● Nascido no Rio de Janeiro em 1965;
● Residente em Vitória, ES;
● Graduado em Análise e Desenvolvimento de Sistemas pela Universidade Estácio de Sá – Rio de
Janeiro;
● Especialista em GNU/Linux;
● Pós-Graduando MBA Engenharia e Arquitetura de Softwares e Gestão e Docência do Ensino
Superior;
● Profissional Linux desde 1994;
● Atuando em centros de treinamentos LPI-C1 e LPI-C2;
● Desenvolvedor de soluções de conectividade e segurança em ambientes operacionais híbridos;
● Instrutor nas áreas de lógica de programação, linguagens de progrmação C,C++,PHP,Java e
Python;
● Em constante aprendizado em novas linguagens orientadas à objetos e funcionais;
● Fã das ferramentas Google;
● Satisfação em compartilhar conhecimento;
3. Motivação
● Compartilhar conhecimento com profissionais iniciantes ou todo aquele que quer
saber um pouco mais deste maravilhoso mundo de desenvolvimento para ambientes
Unix...;
● Eu sei que existem muitos cursos em vídeo aulas muito bons e aconselho a segui-
los, pois você poderá acrescentar muito em sua experiência, sou mais um para
ajudá-los;
● O mercado para este profissional é amplo, embora não pareça;
● GNU/Linux está presente na maioria das empresas que precisam de um firewall,
servidor de arquivos, servidor web, etc... Todos ele precisam de profissionais com
conhecimentos em Shell Script.
● E satisfação em poder ajudar; isso é próprio da grande família de desenvolvedores
de software livre;
5. Agenda
Breve histórico
Requisitos mínimos
Comandos mais usados
Leia e Escreva by Shell Script
Variáveis – conceito e exemplos
Variáveis especiais
Variáveis especiais – Exemplo de Uso
Operadores e operações aritméticas
Operaçoes aritméticas com 'expr'
Operadores relacionais
Operadores lógicos
Estrutura condicional if,else,fi
Estrutura condicional if,elif,else,fi
Instrução select
Estrutura case,esac
Laço de repetição – for
Laço de repetição – while
Laço de repetição – until
Redirecionadores de entrada e saída
Blocos e argumentos
Teste em arquivos
Escapes reconhecidos pelo comando 'echo'
Expansão de variáveis
Usando formatadores para 'printf'
Código de retorno de comandos
Metacaracteres de expressões regulares
Notas de gradecimento ferramentas usados nesta
obra
Referências
7. Breve Histórico
A linguagem Shell Script é a linha de comando Linux (Unix),comandos armazenados
em um arquivo texto que são executados sequencialmente. Esta linguagem interpreta
a linha de comandos digitados pelo usuário no terminal e chama os programas
desejados. Além de executar comandos do sistema, o Shell também tem seus
próprios comandos, e tambémpossui variáveis e funções. Existem diversos tipos de
shell: bash, csh, ksh, ash,etc. O mais utilizado atualmente é o bash (GNU Bourne-
Again SHell). A primeira linha de todo Shell script deve começar com algo do tipo:
#!/bin/bash, a qual indica com qual Shell deverá ser executado o script.
Shell Script é uma linguagem Interpretada e Imperativo.
Tendo as características de uma linguagem de programação, o Shell é uma
ferramenta muito poderosa para desenvolver Scripts e programinhas rápidos, para
automatizar tarefas do dia-a-dia. Podemos escrever programas elaborados em Shell
Script, substituindo aplicativos que, em uma linguagem mais elaborada demorariam
muito mais tempo para ser escritos . Seus scripts podem possuir interfaces simples
de modo texto , ou possuir interface gráfica elaborada escrita usando o kommander e
funções do kdialog. Para quem está acostumado com o MSDOS, o Shell é como um
Batch (dos arquivos .BAT).Além de servir para fazer pequenos scripts o Shell é
completo o suficiente para fazer grandes programas.
8. Breve Histórico
(continuação)
Entre as características do Shell é que nele pode ser feito Interfaces Interativas
com o usuário, programas de cálculos, CGI, instaladores de software,manipulação
de banco de dados, rotinas de backup etc . Uma das vantagens dos Shell Scripts
é que eles não precisam ser compilados, para dar a um arquivo uma definição de
"Shell script" temos que incluir uma linha no começo do arquivo (#!/bin/bash) e
torná-lo "executável", utilizando o comando chmod.
9. Requisitos Mínimos
● Qualquer distribuição Unix Like Linux: Ubuntu, Fedora, Gentoo, Mandriva, Debian,
Mint. FreeBSD ou MacOS (comercial), Cygwin – uma implementação dos
comandos do Linux para Windows;
● Conhecer pelo menos os comandos básicos em GNU/Linux;
● Um editor de texto de sua escolha: vi, nano, pico, gedit, kedit, genie, kate,... e por aí
vai, a lista é grande... ;
● Ter força de vontade para querer aprender mais;
● Estudar, estudar, praticar, praticar, praticar, ….., estudar... estudar...
11. Leia e Escreva by Shell Script
Para ler e escrever usamos a dobradinha dos comandos:
echo e read
Ex.:
echo “Qual o seu nome?”
read NOME
echo “Seu nome é: $NOME”
Como vimos acima, para ler algo do teclado ou outro <stdin>
ou (entrada padrão) usamos o comando “read”. Para exibir
no monitor ou <stdout> ( saida padrao) usamos o comando
“echo”.
O “read” lê o que foi escrito pelo teclado e armazena em uma
variável. Para que o echo leia o conteúdo que foi
armazenado na variável deve-se usar o sinal “$” no inicio do
nome da variável. Ou seja, a variável NOME foi criada com
o comando read e lida $NOME com o comando “echo”.
13. Variáveis
● Variável é um nome dado a um
determinado local da memória onde
são armazenados dados.
● Em Shell Script, uma variável pode ser
declarada e atribuído valor à ela
simultâneamente, simplesmente assim:
– NOME=”Wanderlei”
– IDADE=23
● Para lermos o conteúdo de uma variável
devemos acrescentar um “$” no inicio do
nome da variável ou na forma ${var},
dependendo doe seu estilo de
programação o do contexto atual.
● O nome da variável deve ser
preferivelmente (mas não obrigatório) ser
escrita em maiúsculas para que não se
confunda ou entre em conflito com nome
dos comandos do sistema.
28. Instrução select
A instrução 'select' itera sob uma lista de
opções e ao escolher o número referente
a opção esta será executada...
Funciona de forma análoga ao for in ….
29. case, esac
A estrutura case é utilizada quando
precisamos escolher uma opção
dentre várias disponíveis. É muito
parecida com if, elif, eles, fi mas
tem vantagens adicionais que
melhoram a visibilidade e
entendimento do código.
As opções poderiam ser comandos
de sistema a serem executados de
acordo com a opção escolhida.
33. Redirecionamento de
entrada e saída
Os direcionadores de entrada e
saída podem redirecionar entradas
e saidas para um canal específica
que pode ser um arquivo, /dev/null
ou um dispositivo qualquer...
Muito útil quando não se quer que
o usuário não veja as mensagens
de erro por exemplo, ou envar
todas as mensagens produzidas
pelos comandos para um arquivo
de log.
No futuro faremos alguns
exercícios para praticarmos estes
direcionadores.
46. Muito mais conteúdo nas referências ao final da página.
Tentei cobrir nestes slides o princípio básico...
A partir de agora faremos video aulas totalmente práticas e aumentando o nível de
complexidade progressivamente.
http://youtube.com/w3ae
Espero que gostem!
47. Estes slides foram produzidos usando a suíte de aplicativos LibreOffice instalado
em um computador com GNU/Linux Ubuntu 14.10, com interface gráfica
Cinnamon.
Algumas imagens utilizadas foram baixadas de sites públicos e se algum autor se
sentir ofendido ou de alguma maneira não permitir seu uso nestes slides, por
gentileza me comunique que os substituirei assim que for solicitado por e-mail.
Obrigado a grande comunidade de desenvolvedores que não poupam esforços
para a divulgação de ferramentas de software livre em todos os níveis...
Grande abraço à todos!