CCTI - Semana Acadêmica
  Oficina de Programação em Shell Script


                          Apresentado por:
                     Amador Pahim
                   Analista de Suporte/UCS
Introdução
O que é Shell?
Vários sabores
       Bourne Shell (sh)                         C Shell (csh)
        ●   Escrito por Stephen                   ●   Feito por Bill Joy para o
            Bourne, da Bell Labs.                     BSD.
            Distribuido pela
                                                 Almquist Shell (ash) e
            primeira vez com o
            Unix versão 7, em                    Debian ash (dash)
            1977.                                 ●   BSDs / Debian.
       Korn Shell (ksh)                          Bourne Again Shell
        ●   Desenvolvido no                      (bash)
            começo dos anos 80                    ●   Desenvolvido por Brian
            por David Korn,                           Fox em 1987 para o
            também da Bell Labs.                      Sistema Operacional GNU.
http://en.wikipedia.org/wiki/Comparison_of_computer_shells
Passos
●   Escolha um nome.
●   Crie um arquivo com o nome escolhido e a
    extensão “sh”.
●   Coloque o shell na primeira linha assim:
        #!/bin/bash
●   Torne-o executável:
        chmod +x script.sh
●   Execute-o:
        ./script.sh
    obs: variável $PATH.
1º Script


●   Mostre informações do sistema (data, hora e
    discos).
    ●   Melhorar a saída.
    ●   Interagir com o usuário.
Variáveis
●   Atribuição:
        # var1=Oficina
        # var2=”Oficina de Shell Script”
●   Vetores:
        # vetor[0]=”Semana”
        # vetor[1]=”Acadêmica”
●   Variáveis de ambiente:
    ●   $SHELL, $PWD, $RANDOM, $?, ...
Comando test

                   Variáveis                            Arquivos
-lt (LessThan)                       -d (É diretório)
-gt (GreaterThan)                    -f (É arquivo)
-le (LessEqual)                      -r (Arquivo com permissão de leitura)
-ge (GreaterEqual)                   -s (Arquivo com tamanho mais que 0)
-eq (Equal)                          -w (Arquivo com permissão de escrita)
-ne (NotEqual)                       -nt (NewerThan)
= (String igual)                     -ot (OlderThan)
!= (String diferente)                -ef (EqualFile)
-n (String não nula)                 -a (AND)
-z (String nula)                     -o (OR)
Importante!
●   Passagem de parâmetros:
       ./script.sh parametro1 parametro2
●   Operações aritméticas:
       var=$((2+4))
       var2=$(($var*2))
●   If, for e while:
    if COMANDO         for VAR in LISTAGEM   while COMANDO
    then               do                    do
         comandos           comandos             comandos
    else               done                  done
         comandos
    fi
2º Script



●   Mostre na tela todos os parâmetros
    recebidos, numerando-os.
Ordem de execução


●   Resolução de redirecionamentos
●   Substituição de variáveis
●   Substituição de meta caracteres
●   Passagem do comando para o Kernel
Redirecionamentos
●   Saída padrão:
      >     # echo teste > arq1.txt
      >>    # echo teste2 >> arq1.txt
●   Saída de erro padrão:
      2>    # ls pindamonhangaba 2> arq2.txt
      2>>   # ls papibaquigrafo 2>> arq2.txt
●   Entrada padrão:
      <     # grep papiba < arq2.txt
Redirecionamentos
●   Here document:
        <<
    ●   Exemplo:
        # ftp -ivn host.domain.com << FIM
        user admin teste
        bin
        get file.tar.gz
        FIM
3º Script


●   Leia 3 números e mostre-os em ordem
    decrescente.
Fontes:
www.julioneves.com
aurelio.net

Contato:
amador@pahim.org

Oficina shell

  • 1.
    CCTI - SemanaAcadêmica Oficina de Programação em Shell Script Apresentado por: Amador Pahim Analista de Suporte/UCS
  • 2.
  • 3.
    O que éShell?
  • 4.
    Vários sabores Bourne Shell (sh) C Shell (csh) ● Escrito por Stephen ● Feito por Bill Joy para o Bourne, da Bell Labs. BSD. Distribuido pela Almquist Shell (ash) e primeira vez com o Unix versão 7, em Debian ash (dash) 1977. ● BSDs / Debian. Korn Shell (ksh) Bourne Again Shell ● Desenvolvido no (bash) começo dos anos 80 ● Desenvolvido por Brian por David Korn, Fox em 1987 para o também da Bell Labs. Sistema Operacional GNU. http://en.wikipedia.org/wiki/Comparison_of_computer_shells
  • 5.
    Passos ● Escolha um nome. ● Crie um arquivo com o nome escolhido e a extensão “sh”. ● Coloque o shell na primeira linha assim: #!/bin/bash ● Torne-o executável: chmod +x script.sh ● Execute-o: ./script.sh obs: variável $PATH.
  • 6.
    1º Script ● Mostre informações do sistema (data, hora e discos). ● Melhorar a saída. ● Interagir com o usuário.
  • 7.
    Variáveis ● Atribuição: # var1=Oficina # var2=”Oficina de Shell Script” ● Vetores: # vetor[0]=”Semana” # vetor[1]=”Acadêmica” ● Variáveis de ambiente: ● $SHELL, $PWD, $RANDOM, $?, ...
  • 8.
    Comando test Variáveis Arquivos -lt (LessThan) -d (É diretório) -gt (GreaterThan) -f (É arquivo) -le (LessEqual) -r (Arquivo com permissão de leitura) -ge (GreaterEqual) -s (Arquivo com tamanho mais que 0) -eq (Equal) -w (Arquivo com permissão de escrita) -ne (NotEqual) -nt (NewerThan) = (String igual) -ot (OlderThan) != (String diferente) -ef (EqualFile) -n (String não nula) -a (AND) -z (String nula) -o (OR)
  • 9.
    Importante! ● Passagem de parâmetros: ./script.sh parametro1 parametro2 ● Operações aritméticas: var=$((2+4)) var2=$(($var*2)) ● If, for e while: if COMANDO for VAR in LISTAGEM while COMANDO then do do comandos comandos comandos else done done comandos fi
  • 10.
    2º Script ● Mostre na tela todos os parâmetros recebidos, numerando-os.
  • 11.
    Ordem de execução ● Resolução de redirecionamentos ● Substituição de variáveis ● Substituição de meta caracteres ● Passagem do comando para o Kernel
  • 12.
    Redirecionamentos ● Saída padrão: > # echo teste > arq1.txt >> # echo teste2 >> arq1.txt ● Saída de erro padrão: 2> # ls pindamonhangaba 2> arq2.txt 2>> # ls papibaquigrafo 2>> arq2.txt ● Entrada padrão: < # grep papiba < arq2.txt
  • 13.
    Redirecionamentos ● Here document: << ● Exemplo: # ftp -ivn host.domain.com << FIM user admin teste bin get file.tar.gz FIM
  • 14.
    3º Script ● Leia 3 números e mostre-os em ordem decrescente.
  • 15.