SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Curso gratuito de Shell Script
Wanderlei Silva do Carmo
<wander.silva@gmail.com>
Do básico ao intermediárioDo básico ao intermediário
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;
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;
Nosso Foco
Bash em GNU/LinuxBash em GNU/Linux
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
Breve Histórico
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.
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.
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...
Comandos mais usados
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”.
Leia e Escreva by Shell Script
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.
Variáveis especiais
Variáveis especiais – Exemplo de Uso
Operações Aritiméticas
● Os operadores aritméticos em
Shell Script são:
– Somar => +;
– Subtrair => -;
– Multiplicar => *;
– Dividir => /;
– Módulo ou resto da divisão => %;
– Exponenciação => ** ;
● Exemplos de uma operações
aritiméticas.
●
Operações Aritméticas com 'expr'
Para operações aritméticas pode ser usado também o comando `expr`:
Operadores Relacionais
Operadores Relacionais
Operadores Lógicos
Operadores Lógicos
(continuação)
Estrutura Condicional - IF
Exibir se Verdadeiro
Condição
Expressão
Exibir se Falso
Falso Verdadeiro
If,else,fi
If, elif, else, fi
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 ….
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.
Laço de Repetição - for
Laço de repetição - while
Laço de Repetição - until
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.
Blocos e Agrupamentos
Teste em Arquivos
Escapes Reconhecidos pelo echo
Para usar as sequências de
escape use o parâmetro '-e'.
Formatadores de do domando date
Expansão de Variáveis
Usando formatadores para printf
printf “O número %d em hexa é %x” 12 12
printf “Peso: %f 15,8
printf “Peso: %3.2f' 15,8 #formatado com 3 numeros
inteiros e 2 casas decimais.
printf “Peso: %3.2fn' 15,8 #formatado com 3 numeros
pulando uma linha;
Testando propriedades arquivos
Código de Retorno de Comandos
Código ANSI
Metacaracteres de Expressões Regulares
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!
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!
Obrigado!Obrigado!
Referências
https://fit.faccat.br/~jonis/shellscript.pdf
http://aurelio.net/shell/canivete/

Mais conteúdo relacionado

Mais procurados

Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à ShellscriptVinícius Hax
 
Shell Script - Luz e trevas
Shell Script - Luz e trevasShell Script - Luz e trevas
Shell Script - Luz e trevasOsvaldo Filho
 
Soa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellSoa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellportal_Do_estudante
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Sandro Custodio
 
Linux - Shell e Comandos Básicos
Linux - Shell e Comandos BásicosLinux - Shell e Comandos Básicos
Linux - Shell e Comandos BásicosFrederico Madeira
 
Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power toolsArmando Reis
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)Sérgio Silva
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoRafael Jaques
 
Curso de shell
Curso de shellCurso de shell
Curso de shellTiago
 
Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Pessoal
 
Introdução ao shell script no linux
Introdução ao shell script no linuxIntrodução ao shell script no linux
Introdução ao shell script no linuxPaulo Damas
 

Mais procurados (19)

Shell Script v0
Shell Script v0Shell Script v0
Shell Script v0
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Shell script
Shell scriptShell script
Shell script
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Introdução à Shellscript
Introdução à ShellscriptIntrodução à Shellscript
Introdução à Shellscript
 
Curso gratuitoshellscript nivel-2
Curso gratuitoshellscript nivel-2Curso gratuitoshellscript nivel-2
Curso gratuitoshellscript nivel-2
 
Shell Script - Luz e trevas
Shell Script - Luz e trevasShell Script - Luz e trevas
Shell Script - Luz e trevas
 
Shell Script
Shell ScriptShell Script
Shell Script
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Soa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shellSoa cap2 exercicios resolvidos shell
Soa cap2 exercicios resolvidos shell
 
Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017Bash, o poder da linha de comando! - Tchelinux.org 2017
Bash, o poder da linha de comando! - Tchelinux.org 2017
 
Linux - Shell e Comandos Básicos
Linux - Shell e Comandos BásicosLinux - Shell e Comandos Básicos
Linux - Shell e Comandos Básicos
 
Sapo sessions linux power tools
Sapo sessions linux power toolsSapo sessions linux power tools
Sapo sessions linux power tools
 
O Que é Shell (bash)
O Que é Shell (bash)O Que é Shell (bash)
O Que é Shell (bash)
 
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoPHP na Tela Escura: Aplicações Poderosas em Linha de Comando
PHP na Tela Escura: Aplicações Poderosas em Linha de Comando
 
Curso de shell
Curso de shellCurso de shell
Curso de shell
 
Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7Curso de ShellScript - Lm07 shellscript7
Curso de ShellScript - Lm07 shellscript7
 
Introdução ao shell script no linux
Introdução ao shell script no linuxIntrodução ao shell script no linux
Introdução ao shell script no linux
 
Shell scripts
Shell scriptsShell scripts
Shell scripts
 

Semelhante a Curso Gratuito de Shell Script

Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shellMarcio Pereira
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHPPaulo Dayvson
 
Prog shell
Prog shellProg shell
Prog shellTiago
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSLMichel Alves
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandosIvan Ribeiro
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformMilfont Consulting
 
01 apostila-introducao-shell
01   apostila-introducao-shell01   apostila-introducao-shell
01 apostila-introducao-shellvinicius caldeira
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIinfo_cimol
 

Semelhante a Curso Gratuito de Shell Script (20)

Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 
PHP - Introdução
PHP - IntroduçãoPHP - Introdução
PHP - Introdução
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Linux shell
Linux shellLinux shell
Linux shell
 
Comandos gerais do PHP
Comandos gerais do PHPComandos gerais do PHP
Comandos gerais do PHP
 
Prog shell
Prog shellProg shell
Prog shell
 
The Language VolcanX - ABMSL
The Language VolcanX - ABMSLThe Language VolcanX - ABMSL
The Language VolcanX - ABMSL
 
Shell script
Shell script Shell script
Shell script
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Ud2
Ud2Ud2
Ud2
 
Shell script do zero aula 1 - basico do basico e primeiros comandos
Shell script do zero    aula 1 - basico do basico e primeiros comandosShell script do zero    aula 1 - basico do basico e primeiros comandos
Shell script do zero aula 1 - basico do basico e primeiros comandos
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java Platform
 
Unidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao ShellUnidade 3.6 Introdução ao Shell
Unidade 3.6 Introdução ao Shell
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
01 apostila-introducao-shell
01   apostila-introducao-shell01   apostila-introducao-shell
01 apostila-introducao-shell
 
Apostila introducao-shell
Apostila introducao-shellApostila introducao-shell
Apostila introducao-shell
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
 

Mais de Wanderlei Silva do Carmo (15)

HTML Básico - Programador web
HTML Básico - Programador webHTML Básico - Programador web
HTML Básico - Programador web
 
Apresentação programação de computadores
Apresentação   programação de computadoresApresentação   programação de computadores
Apresentação programação de computadores
 
Desenvolvimento para Windows Mobile
Desenvolvimento para Windows MobileDesenvolvimento para Windows Mobile
Desenvolvimento para Windows Mobile
 
Desenvolvimento IOS - Mobile
Desenvolvimento IOS - MobileDesenvolvimento IOS - Mobile
Desenvolvimento IOS - Mobile
 
Segurança de código
Segurança de códigoSegurança de código
Segurança de código
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Mini aula análise de requisitos
Mini aula análise de requisitosMini aula análise de requisitos
Mini aula análise de requisitos
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
Mini aula-java
Mini aula-javaMini aula-java
Mini aula-java
 
HTML Básico
HTML BásicoHTML Básico
HTML Básico
 
Vagrant uma ferramenta realmente útil e versátil
Vagrant   uma ferramenta realmente útil e versátilVagrant   uma ferramenta realmente útil e versátil
Vagrant uma ferramenta realmente útil e versátil
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Programação de computadores
Programação de computadoresProgramação de computadores
Programação de computadores
 
Operadores lógicos
Operadores lógicosOperadores lógicos
Operadores lógicos
 

Curso Gratuito de Shell Script

  • 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;
  • 4. Nosso Foco Bash em GNU/LinuxBash em GNU/Linux
  • 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”.
  • 12. Leia e Escreva by Shell Script
  • 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.
  • 15. Variáveis especiais – Exemplo de Uso
  • 16.
  • 17.
  • 18. Operações Aritiméticas ● Os operadores aritméticos em Shell Script são: – Somar => +; – Subtrair => -; – Multiplicar => *; – Dividir => /; – Módulo ou resto da divisão => %; – Exponenciação => ** ; ● Exemplos de uma operações aritiméticas. ●
  • 19. Operações Aritméticas com 'expr' Para operações aritméticas pode ser usado também o comando `expr`:
  • 24. Estrutura Condicional - IF Exibir se Verdadeiro Condição Expressão Exibir se Falso Falso Verdadeiro
  • 27.
  • 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.
  • 36.
  • 37. Escapes Reconhecidos pelo echo Para usar as sequências de escape use o parâmetro '-e'.
  • 38. Formatadores de do domando date
  • 40. Usando formatadores para printf printf “O número %d em hexa é %x” 12 12 printf “Peso: %f 15,8 printf “Peso: %3.2f' 15,8 #formatado com 3 numeros inteiros e 2 casas decimais. printf “Peso: %3.2fn' 15,8 #formatado com 3 numeros pulando uma linha;
  • 42.
  • 43. Código de Retorno de Comandos
  • 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!