apostila introducao shell

Upload: junior-rodrigues

Post on 04-Mar-2016

216 views

Category:

Documents


0 download

DESCRIPTION

Introdução Shell

TRANSCRIPT

  • Introduo ao Shell Script

    Aurlio Marinho Jargas

    http://aurelio.net

  • ndiceSobre o curso.......................................................................................................................1

    Apresentao........................................................................................................................2O que o shell............................................................................................................2Shell script...................................................................................................................3Antes de comear........................................................................................................3

    O primeiro shell script.........................................................................................................4Passos para criar um shell script.................................................................................4Problemas na execuo do script................................................................................5

    O primeiro shell script (melhorado)....................................................................................6Melhorar a sada na tela..............................................................................................6Interagir com o usurio................................................................................................6Melhorar o cdigo do script.........................................................................................7

    Rebobinando a fita...............................................................................................................8Variveis......................................................................................................................8Detalhes sobre os comandos......................................................................................8O comando test.........................................................................................................10Tarefa: script que testa arquivos...............................................................................11

    Conceitos mais avanados...............................................................................................12Recebimento de opes e parmetros......................................................................12Expresses aritmticas..............................................................................................12If, for e while..............................................................................................................13

    Exerccios...........................................................................................................................15

    Mais informaes...............................................................................................................18

    Respostas dos exerccios.................................................................................................19testa-arquivos............................................................................................................19relacao.sh..................................................................................................................19zerador.sh..................................................................................................................19substring.sh...............................................................................................................20juntatudo.sh...............................................................................................................20users.sh.....................................................................................................................20shells.sh.....................................................................................................................20parametros.sh............................................................................................................20

    Introduo ao Shell Script - Aurlio Marinho Jargas

    i

  • Sobre o cursoNome

    Introduo a Shell ScriptsInstrutor

    Aurlio Marinho Jargas (http://aurelio.net)Objetivo

    Ensinar aos alunos todos os conceitos necessrios para poderem fazer sozinhosscripts simples em shell.

    Pr-RequisitosNoes bsicas de informtica e operao do sistema pela linha de comando. desejado, porm no obrigatrio, noes bsicas de programao.

    Pblico AlvoDesenvolvedores, administradores de sistemas, programadores e interessados emgeral.

    Durao8 horas

    1

  • ApresentaoO que o shellO shell o "prompt" da linha de comando do Unix e Linux, o servo que recebe oscomandos digitados pelo usurio e os executa.

    O shell aquele que aparece logo aps digitar-se a senha do usurio e entrar na telapreta. Ou na interface grfica, ao clicar no cone do Xterm, rxvt, Terminal ou Console.

    localhost login: root Password:

    Last login: Fri Apr 16 01:57:28 on tty5 [root@localhost root]# _

    Ali est o shell, esperando ansiosamente por algum comando para ele poder executar.Essa a sua funo: esperar e executar. Cada comando digitado lido, verificado,interpretado e enviado ao sistema operacional para ser de fato executado.

    No Mac OS X, o shell est em Aplicativos > Utilitrios > Terminal. No Windows preciso instal-lo com o Cygwin.

    Funcionando como uma ponte, o shell a ligao entre o usurio e o kernel. O kernel quem acessa os equipamentos (hardware) da mquina, como disco rgido, placa de vdeoe modem. Por exemplo, para o usurio ler um arquivo qualquer, toda esta hierarquia seguida:

    USURIO --> SHELL --> KERNEL --> DISCO RGIDO

    Para os usurios do Windows, fcil pensar no shell como um MSDOS melhorado. Aoinvs do C:\> aparece um [root@localhost root]#, mas o funcionamento similar. Bastadigitar um comando, suas opes e apertar a ENTER que ele ser executado. O comandodeve estar no PATH, mensagens de aviso so mandadas para a tela e Ctrl+C interrompe ofuncionamento. Isso tudo igual em ambos.

    Mas o shell muito mais poderoso que seu primo distante. Alm dos comandos bsicospara navegar entre diretrios e manipular arquivos, ele tambm possui todas as estruturasde uma linguagem de programao, como IF, FOR, WHILE, variveis e funes. Com isso,tambm possvel usar o shell para fazer scripts e automatizar tarefas.

    Este ser o nosso foco: scripts em shell.

    2

  • Shell script

    Um script um arquivo que guarda vrios comandos e pode ser executado sempre quepreciso. Os comandos de um script so exatamente os mesmos que se digita no prompt, tudo shell.

    Por exemplo, se de tempos em tempos voc quer saber informaes do sistema comohorrio, ocupao do disco e os usurios que esto logados, preciso digitar trscomandos:

    [root@localhost root]# date [root@localhost root]# df [root@localhost root]# w

    melhor fazer um script chamado "sistema" e colocar estes comandos nele. O contedodo arquivo "sistema" seria o seguinte:

    #!/bin/bash date df w

    E para chamar este script, basta agora executar apenas um comando:

    [root@localhost root]# sistema

    Isso um shell script. Um arquivo de texto que contm comandos do sistema e pode serexecutado pelo usurio.

    Antes de comearSe voc est acessando o sistema como usurio administrador (root), saia e entre comoum usurio normal. muito perigoso estudar shell usando o superusurio, voc podedanificar o sistema com um comando errado.

    Se voc no tem certeza qual o seu usurio, use o comando "whoami" parasaber

    Como o prompt de usurio normal diferente para cada um, nos exemplos seguintes serusado "prompt$" para indicar o prompt da linha de comando.

    Introduo ao Shell Script - Aurlio Marinho Jargas

    3

  • O primeiro shell scriptO primeiro shell script a fazer ser o "sistema" do exemplo anterior, de simplesmente juntartrs comandos em um mesmo script.

    Passos para criar um shell script

    1. Escolher um nome para o script

    J temos um nome: sistema.

    Use apenas letras minsculas e evite acentos, smbolos e espao em branco

    2. Escolher o diretrio onde colocar o script

    Para que o script possa ser executado de qualquer parte do sistema, mova-o para umdiretrio que esteja no seu PATH. Para ver quais so estes diretrios, use o comando:

    echo $PATH

    Se no tiver permisso de mover para um diretrio do PATH, deixe-o dentro deseu diretrio pessoal ($HOME).

    3. Criar o arquivo e colocar nele os comandos

    Use o nano, VI ou outro editor de textos de sua preferncia para colocar todos oscomandos dentro do arquivo.

    4. Colocar a chamada do shell na primeira linha

    A primeira linha do script deve ser:

    #!/bin/bash

    Para que ao ser executado, o sistema saiba que o shell quem ir interpretar estescomandos.

    5. Tornar o script um arquivo executvel

    Use o seguinte comando para que seu script seja reconhecido pelo sistema como umcomando executvel:

    chmod +x sistema

    4

  • Problemas na execuo do script

    "Comando no encontrado"

    O shell no encontrou o seu script.

    Verifique se o comando que voc est chamando tem exatamente o mesmo nomedo seu script. Lembre-se que no Unix/Linux as letras maisculas e minsculas sodiferentes, ento o comando "SISTEMA" diferente do comando "sistema".

    Caso o nome esteja correto, verifique se ele est no PATH do sistema. O comando"echo $PATH" mostra quais so os diretrios conhecidos, mova seu script paradentro de um deles, ou chame-o passando o caminho completo.

    Se o script estiver no diretrio corrente, chame-o com um "./" na frente, assim:

    prompt$ ./sistema

    Caso contrrio, especifique o caminho completo desde o diretrio raiz:

    prompt$ /tmp/scripts/sistema

    "Permisso Negada"

    O shell encontrou seu script, mas ele no executvel.

    Use o comando "chmod +x seu-script" para torn-lo um arquivo executvel.

    "Erro de Sintaxe"

    O shell encontrou e executou seu script, porm ele tem erros.

    Um script s executado quando sua sintaxe est 100% correta. Verifique os seuscomandos, geralmente o erro algum IF ou aspas que foram abertos e no foramfechados. A prpria mensagem informa o nmero da linha onde o erro foiencontrado.

    Introduo ao Shell Script - Aurlio Marinho Jargas

    5

  • O primeiro shell script (melhorado)Nesse ponto, voc j sabe o bsico necessrio para fazer um script em shell do zero eexecut-lo. Mas apenas colocar os comandos em um arquivo no torna este script til.Vamos fazer algumas melhorias nele para que fique mais compreensvel.

    Melhorar a sada na tela

    Executar os trs comandos seguidos resulta em um bolo de texto na tela, misturando asinformaes e dificultando o entendimento. preciso trabalhar um pouco a sada do script,tornando-a mais legvel.

    O comando "echo" serve para mostrar mensagens na tela. Que tal anunciar cada comandoantes de execut-lo?

    #!/bin/bash echo "Data e Horrio:" date echo echo "Uso do disco:" df echo echo "Usurios conectados:" w

    Para usar o echo, basta colocar o texto entre "aspas". Se nenhum texto for colocado, umalinha em branco mostrada.

    Interagir com o usurioPara o script ficar mais completo, vamos colocar uma interao mnima com o usurio,pedindo uma confirmao antes de executar os comandos.

    #!/bin/bash echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA test "$RESPOSTA" = "n" && exit echo "Data e Horrio:" date echo echo "Uso do disco:" df echo echo "Usurios conectados:" w

    O comando "read" leu o que o usurio digitou e guardou na varivel RESPOSTA. Logo emseguida, o comando "test" verificou se o contedo dessa varivel era "n". Se afirmativo, o

    6

  • comando "exit" foi chamado e o script foi finalizado. Nessa linha h vrios detalhesimportantes:

    O contedo da varivel acessado colocando-se um cifro "$" na frente O comando test til para fazer vrios tipos de verificaes em textos e arquivos O operador lgico "&&", s executa o segundo comando caso o primeiro tenha sidoOK. O operador inverso o "||"

    Melhorar o cdigo do scriptCom o tempo, o script vai crescer, mais comandos vo ser adicionados e quanto maior,mais difcil encontrar o ponto certo onde fazer a alterao ou corrigir algum erro.

    Para poupar horas de estresse, e facilitar as manutenes futuras, preciso deixar ocdigo visualmente mais agradvel e espaado, e colocar comentrios esclarecedores.

    #!/bin/bash # sistema - script que mostra informaes sobre o sistema # Autor: Fulano da Silva

    # Pede uma confirmao do usurio antes de executar echo "Vou buscar os dados do sistema. Posso continuar? [sn] " read RESPOSTA

    # Se ele digitou 'n', vamos interromper o script test "$RESPOSTA" = "n" && exit

    # O date mostra a data e a hora correntes echo "Data e Horrio:" date echo

    # O df mostra as parties e quanto cada uma ocupa no disco echo "Uso do disco:" df echo

    # O w mostra os usurios que esto conectados nesta mquina echo "Usurios conectados:" w

    Basta iniciar a linha com um "#" e escrever o texto do comentrio em seguida. Estas linhasso ignoradas pelo shell durante a execuo. O cabealho com informaes sobre o scripte seu autor tambm importante para ter-se uma viso geral do que o script faz, semprecisar decifrar seu cdigo.

    Tambm possvel colocar comentrios no meio da linha # como este

    Introduo ao Shell Script - Aurlio Marinho Jargas

    7

  • Rebobinando a fitaAgora hora de fixar alguns dos conceitos vistos no script anterior.

    VariveisAs variveis so a base de qualquer script. dentro delas que os dados obtidos durante aexecuo do script sero armazenados. Para definir uma varivel, basta usar o sinal deigual "=" e para ver seu valor, usa-se o "echo":

    prompt$ VARIAVEL="um dois tres"prompt$ echo $VARIAVEL

    um dois tresprompt$ echo $VARIAVEL $VARIAVEL

    um dois tres um dois tresprompt$

    No podem haver espaos ao redor do igual "="

    Ainda possvel armazenar a sada de um comando dentro de uma varivel. Ao invs deaspas, o comando deve ser colocado entre "$(...)", veja:

    prompt$ HOJE=$(date)prompt$ echo "Hoje : $HOJE"

    Hoje : Sb Abr 24 18:40:00 BRT 2004prompt$ unset HOJEprompt$ echo $HOJE

    prompt$

    E finalmente, o comando "unset" apaga uma varivel.

    Para ver quais as variveis que o shell j define por padro, use o comando"env"

    Detalhes sobre os comandos

    Diferente de outras linguagens de programao, o shell no usa os parnteses paraseparar o comando de seus argumentos, mas sim o espao em branco. O formato de umcomando sempre:

    COMANDO OPES PARMETROS

    O comando "cat" mostra o contedo de um arquivo. O comando "cat -n sistema" mostra onosso script, com as linhas numeradas. O "-n" a opo para o comando, que o instrui anumerar linhas, e "sistema" o ltimo argumento, o nome do arquivo.

    8

  • O "read" um comando do prprio shell, j o "date"" um executvel do sistema. Dentrode um script, no faz diferena usar um ou outro, pois o shell sabe como executar ambos.Assim, toda a gama de comandos disponveis no Unix/Linux pode ser usada em scripts!

    H vrios comandos que foram feitos para serem usados com o shell, so comoferramentas. Alguns deles:

    Comando Funo Opes teiscat Mostra arquivo -n, -s

    cut Extrai campo -d -f, -c

    date Mostra data -d, +'...'

    find Encontra arquivos -name, -iname, -type f, -exec

    grep Encontra texto -i, -v, -r, -qs, -w -xhead Mostra Incio -n, -c

    printf Mostra texto nenhuma

    rev Inverte texto nenhuma

    sed Edita texto -n, s/isso/aquilo/, d

    seq Conta Nmeros -s, -f

    sort Ordena texto -n, -f, -r, -k -t, -o

    tail Mostra Final -n, -c, -f

    tr Transforma texto -d, -s, A-Z a-z

    uniq Remove duplicatas -i, -d, -u

    wc Conta Letras -c, -w, -l, -L

    Use "man comando" ou "comando --help" para obter mais informaes sobrecada um deles.

    E o melhor, em shell possvel combinar comandos, aplicando-os em seqncia, paraformar um comando completo. Usando o pipe "|" possvel canalizar a sada de umcomando diretamente para a entrada de outro, fazendo uma cadeia de comandos.Exemplo:

    prompt$ cat /etc/passwd | grep root | cut -c1-10 root:x:0:0 operator:x

    prompt$

    Introduo ao Shell Script - Aurlio Marinho Jargas

    9

  • O cat mostra o arquivo todo, o grep pega essa sada e extrai apenas as linhas que contma palavra "root" e o cut por sua vez, somente nessas linhas que o grep achou, extrai os 10primeiros caracteres. Isso funciona como uma estao de tratamento de gua, onde elaentra suja, vai passando por vrios filtros que vo tirando as impurezas e sai limpa no final.

    E por fim, tambm possvel redirecionar a sada de um comando para um arquivo aoinvs da tela, usando o operador ">". Para guardar a sada do comando anterior no arquivo"saida", basta fazer:

    prompt$ cat /etc/passwd | grep root | cut -c1-10 > saidaprompt$ cat saida

    root:x:0:0 operator:xprompt$

    Cuidado! Shell to legal que vicia!

    O comando test

    O canivete suo dos comandos do shell o "test", que consegue fazer vrios tipos detestes em nmeros, textos e arquivos. Ele possui vrias opes para indicar que tipo deteste ser feito, algumas delas:

    Testes em variveis Testes em arquivos-lt Nm. menor que (LessThan) -d um diretrio-gt Nm. maior que (GreaterThan) -f um arquivo normal-le Nm. menor igual (LessEqual) -r O arquivo tem permisso de leitura-ge Nm. maior igual (GreaterEqual) -s O tamanho do arquivo maior que zero-eq Nm. igual (EQual) -w O arquivo tem permisso de escrita-ne Nm. diferente (NotEqual) -nt O arquivo mais recente (NewerThan)= String igual -ot O arquivo mais antigo (OlderThan)!= String diferente -ef O arquivo o mesmo (EqualFile)-n String no nula -a E lgico (AND)-z String nula -o OU lgico (OR)

    Introduo ao Shell Script - Aurlio Marinho Jargas

    10

  • Tarefa: script que testa arquivos

    Tente fazer o script "testa-arquivos", que pede ao usurio para digitar um arquivo e testase este arquivo existe. Se sim, diz se um arquivo ou um diretrio. Exemplo de uso:

    prompt$ testa-arquivos Digite o arquivo: /naoexiste O arquivo '/naoexiste' no foi encontrado

    prompt$ testa-arquivos Digite o arquivo: /tmp /tmp um diretrio

    prompt$ testa-arquivos Digite o arquivo: /etc/passwd /etc/passwd um arquivo

    prompt$

    Introduo ao Shell Script - Aurlio Marinho Jargas

    11

  • Conceitos mais avanadosAt agora vimos o bsico, o necessrio para se fazer um script de funcionalidade mnima.A seguir, conceitos novos que ampliaro as fronteiras de seus scripts!

    Recebimento de opes e parmetrosAssim como os comandos do sistema que possuem e opes e parmetros, os scriptstambm podem ser preparados para receber dados via linha de comando.

    Dentro do script, algumas variveis especiais so definidas automaticamente, em especial,"$1" contm o primeiro argumento recebido na linha de comando, "$2" o segundo, e assimpor diante. Veja o script "argumentos":

    #!/bin/sh # argumentos - mostra o valor das variveis especiais

    echo "O nome deste script : $0" echo "Recebidos $# argumentos: $*" echo "O primeiro argumento recebido foi: $1" echo "O segundo argumento recebido foi: $2"

    Ele serve para demonstrar o contedo de algumas variveis especiais, acompanhe:

    prompt$ ./argumentos um dois trs O nome deste script : ./argumentos Recebidos 3 argumentos: um dois trs O primeiro argumento recebido foi: um O segundo argumento recebido foi: dois

    O acesso direto, basta referenciar a varivel que o valor j estar definido. Assim possvel criar scripts que tenham opes como --help, --version e outras.

    Expresses aritmticasO shell tambm sabe fazer contas. A construo usada para indicar uma expressoaritmtica "$((...))", com dois parnteses.

    prompt$ echo $((2*3)) 6prompt$ echo $((2*3-2/2+3))

    8prompt$ NUM=44prompt$ echo $((NUM*2))

    88prompt$ NUM=$((NUM+1))prompt$ echo $NUM

    45

    12

  • If, for e while

    Assim como qualquer outra linguagem de programao, o shell tambm tem estruturaspara se fazer condicionais e loop. As mais usadas so if, for e while.

    if COMANDO for VAR in LISTA while COMANDO then do do comandos comandos comandos else done done comandos fi

    Diferente de outras linguagens, o if testa um comando e no uma condio. Porm como jconhecemos qual o comando do shell que testa condies, s us-lo em conjunto com oif. Por exemplo, para saber se uma varivel maior ou menor do que 10 e mostrar umamensagem na tela informando:

    if test "$VARIAVEL" -gt 10 then echo " maior que 10" else echo " menor que 10" fi

    H um atalho para o test , que o comando [. Ambos so exatamente o mesmo comando,porm usar o [ deixa o if mais parecido com o formato tradicional de outras linguagens:

    if [ "$VARIAVEL" -gt 10 ] then echo " maior que 10" else echo " menor que 10" fi

    Se usar o [, tambm preciso fech-lo com o ], e sempre devem ter espaos aoredor. recomendado evitar esta sintaxe para diminuir suas chances de erro.

    J o while um lao que executado enquanto um comando retorna OK. Novamente otest bom de ser usado. Por exemplo, para segurar o processamento do script enquantoum arquivo de lock no removido:

    while test -f /tmp/lock do echo "Script travado..." sleep 1 done

    Introduo ao Shell Script - Aurlio Marinho Jargas

    13

  • E por fim, o for percorre uma lista de palavras, pegando uma por vez:

    for numero in um dois trs quatro cinco do echo "Contando: $numero" done

    Uma ferramenta muito til para usar com o for o seq, que gera uma seqncia numrica.Para fazer o loop andar 10 passos, pode-se fazer:

    for passo in $(seq 10)

    O mesmo pode ser feito com o while, usando um contador:

    i=0 while test $i -le 10 do i=$((i+1)) echo "Contando: $i" done

    E temos ainda o loop infinito, com condicional de sada usando o "break:

    while : do if test -f /tmp/lock then echo "Aguardando liberao do lock..." sleep 1 else break fi done

    Introduo ao Shell Script - Aurlio Marinho Jargas

    14

  • ExercciosA melhor parte finalmente chegou, agora a sua vez de se divertir. Seguem algunsexerccios que podem ser resolvidos usando o que foi aprendido at aqui.

    Alguns exigiro pesquisa e necessitaro de algumas ferramentas que foram apenascitadas, mas no aprendidas. O shelleiro tambm tem que aprender a se virar sozinho!

    Exerccio 1 - relacao.sh

    Recebe dois nmeros como parmetro e mostra a relao entre eles. Exemplo:

    prompt$ ./relacao.sh 3 5 3 menor que 5prompt$ ./relacao.sh 5 3

    5 maior que 3prompt$ ./relacao.sh 5 5

    5 igual a 5prompt$

    Exerccio 2 - zerador.sh

    Recebe um nmero como parmetro e o diminui at chegar a zero, mostrando natela cada passo, em uma mesma linha. Exemplo:

    prompt$ ./zerador.sh 5 5 4 3 2 1 0prompt$ ./zerador.sh 10

    10 9 8 7 6 5 4 3 2 1 0prompt$

    Exerccio 3 - substring.sh

    Recebe duas palavras como parmetro e verifica se a primeira palavra est contidadentro da segunda. S mostra mensagem informativa em caso de sucesso, docontrrio no mostra nada. Exemplo:

    prompt$ ./substring.sh ana banana ana est contida em bananaprompt$ ./substring.sh banana mariaprompt$ ./substring.sh bananaprompt$ ./substring.shprompt$

    Pesquise sobre o comando grep

    15

  • Exerccio 4 - juntatudo.sh

    Mostra na tela "grudados" todos os parmetros recebidos na linha de comando,como uma nica palavra. Exemplo:

    prompt$ ./juntatudo.sh a b c d e f verde azul abcdefverdeazulprompt$

    Pesquise sobre o comando tr

    Exerccio 5 - users.sh

    Do arquivo /etc/passwd, mostra o usurio e o nome completo de cada usurio dosistema (campos 1 e 5) separados por um TAB. Exemplo:

    prompt$ ./users.sh ftp FTP User nobody Nobody named Domain name server xfs X Font Server mysql MySQL server aurelio Aurelio Marinho Jargasprompt$

    Pesquise sobre o comando cut

    Exerccio 6 - shells.sh

    Do arquivo /etc/passwd, mostra todos os shells (ltimo campo) que os usuriosusam. No mostrar linhas repetidas. Exemplo:

    prompt$ ./shells.sh /bin/bash /bin/false /bin/sync /sbin/halt /sbin/shutdownprompt$

    Pesquise sobre o comando uniq

    Introduo ao Shell Script - Aurlio Marinho Jargas

    16

  • Exerccio 7 - parametros.sh

    Mostra na tela todos os parmetros recebidos na linha de comando, contando-os.Exemplo:

    prompt$ ./parametros.sh a b c d e f Parmetro 1: a Parmetro 2: b Parmetro 3: c Parmetro 4: d Parmetro 5: e Parmetro 6: fprompt$

    Pesquise sobre o comando shift

    Introduo ao Shell Script - Aurlio Marinho Jargas

    17

  • Mais informaesLivro Programao Shell Linux

    Autoria de Julio Cezar Neves, Editora Brasport, ISBN 85-7452-118-3

    Livro BASH - Guia de Consulta RpidaAutoria de Joel Saade, Editora Novatec, ISBN 85-7522-006-3

    Lista de discusso nacional sobre Shell Scripthttp://br.groups.yahoo.com/group/shell-script

    Pgina do instrutor sobre Shell Script, com links para vrios outros materiaishttp://aurelio.net/shell

    18

  • Respostas dos exercciosResista tentao de olhar as respostas antes de tentar fazer os exerccios! na prticaque se consolida os conhecimentos aprendidos, no pule este passo. Seja forte, insista,no desista!

    testa-arquivos #!/bin/bash

    echo -n "Digite o arquivo: " read ARQUIVO

    test -d "$ARQUIVO" && echo "$ARQUIVO um diretrio" test -f "$ARQUIVO" && echo "$ARQUIVO um arquivo"

    test -f "$ARQUIVO" -o -d "$ARQUIVO" || echo "O arquivo '$ARQUIVO' no foi encontrado"

    echo

    relacao.sh #!/bin/bash

    if test $1 -eq $2 then echo "$1 igual a $2" elif test $1 -lt $2 then echo "$1 menor que $2" else echo "$1 maior que $2" fi

    zerador.sh #!/bin/bash

    i=$1 while test $i -ge 0 do echo -n "$i " i=$((i-1)) done echo

    19

  • substring.sh #!/bin/bash

    test $# -ne 2 && exit

    echo $2 | grep -qs $1 && echo "$1 est contida em $2"

    juntatudo.sh #!/bin/bash

    echo $* | tr -d ' '

    users.sh #!/bin/bash

    cat /etc/passwd | cut -d : -f 1,5 | tr : '\t'

    shells.sh #!/bin/bash cat /etc/passwd | cut -d : -f 7 | sort | uniq

    parametros.sh #!/bin/bash

    i=0 while test "$1" do i=$((i+1)) echo "Parmetro $i: $1" shift done

    Introduo ao Shell Script - Aurlio Marinho Jargas

    20

    ndiceSobre o cursoApresentaoO que o shellShell scriptAntes de comear

    O primeiro shell scriptPassos para criar um shell scriptProblemas na execuo do script

    O primeiro shell script (melhorado)Melhorar a sada na telaInteragir com o usurioMelhorar o cdigo do script

    Rebobinando a fitaVariveisDetalhes sobre os comandosO comando testTarefa: script que testa arquivos

    Conceitos mais avanadosRecebimento de opes e parmetrosExpresses aritmticasIf, for e while

    ExercciosMais informaesRespostas dos exercciostesta-arquivosrelacao.shzerador.shsubstring.shjuntatudo.shusers.shshells.shparametros.sh