Introdução ao bash

3,443
-1

Published on

Introdução aos scripts com Bash (Bourne again shell). Palestra preparada para o grupo de estudos de software livre.

Published in: Self Improvement
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,443
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Introdução ao bash

  1. 1. Introdução aos scripts em BASH<br />Prof. André Leon S. Gradvohl, Dr.<br />andre.gradvohl@gmail.com<br />
  2. 2. Plano de apresentação<br />O que são shell scripts?<br />Comandos básicos do Linux<br />Estruturas básicas do BASH<br />Comandos condicionais<br />Comandos de repetição<br />Exemplos de scripts mais elaborados<br />2<br />
  3. 3. O que são Shell Scripts<br />Shell scripts são pequenos programas escritos na linguagem do shell. <br />Os shell scripts normalmente são usados para executar tarefas administrativas mais complexas, i. e., aquelas que envolvem dois ou mais comandos básicos.<br />Os shells mais comuns são os seguintes<br />BourneAgain Shell (/bin/bash)<br />C Shell (/bin/csh)<br />Turbo C Shell (/bin/tcsh)<br />Korn Shell (/bin/ksh)<br />3<br />
  4. 4. Comandos Básicos do Linux<br />cd<br />Mudança de Diretório<br />Ex: cd /<br />Ir para o diretório raiz<br />ls<br />Listar os arquivos e diretório do local corrente<br />Ex: ls<br />Variações<br />ls –a<br />ls –l<br />4<br />
  5. 5. Comandos Básicos do Linux<br />pwd<br />Mostra a localização atual<br />Ex: pwd<br />mkdir<br />Cria um Diretório<br />Ex: mkdiraula11<br />5<br />
  6. 6. Comandos Básicos do Linux<br />cat<br />Exibe o Conteúdo de um Arquivo<br />Ex: cat aula.txt<br />Ex: cat –n aula.txt<br />cp<br />Copia de arquivos<br />Ex: cp aula.txt aula2.txt<br />Ex: cp aula.txt /tmp<br />6<br />
  7. 7. Comandos Básicos do Linux<br />date<br />Exibe e altera a data e hora do computador<br />Ex: date<br />Ex: date +%d/%m/%Y<br />Ex: date 1708203006<br />Primeiro mês, dia, hora, ano<br />mv<br />Mover ou renomear arquivos<br />Ex: mv aula.txt aula3.txt<br />Ex: mv aula3.txt /aula/aula2<br />7<br />
  8. 8. Comandos Básicos do Linux<br />clear<br />Limpar a tela<br />Ex: clear<br />df<br />Saber a quantidade de disco ocupada<br />Ex: df –H<br />free<br />Verificar a utilização da memória RAM<br />Ex: free -m<br />8<br />
  9. 9. Comandos Básicos do Linux<br />rm ou rmdir<br /> apagar arquivos e diretórios<br />Ex: rm aula2.txt<br />Ex: rm –d aula2<br />man<br />Manual on-line dos comando do linux<br />Ex: man date<br />Ex: mancp<br />9<br />
  10. 10. Estrutura básica dos scripts Bashshell<br />#!/bin/bash<br />echo “Ola Mundo!”<br />Importante:<br />O arquivo que contém o script precisa ter permissão para execução.<br />Para tanto, é necessário executar o comando:<br />chmod +x arquivo.sh<br />10<br />
  11. 11. Estrutura básica dos scripts Bashshell – Variáveis<br />As variáveis nos shell scripts não têm tipo e são criadas dinamicamente.<br />Exemplo:<br /> VAR1=1;<br />NOME=“Ze”<br />A atribuição de variáveis é feita com o operador =.<br />Para acessar o conteúdo das variáveis, utiliza-se o operador $.<br />11<br />
  12. 12. Estrutura básica dos scripts Bashshell - Leitura<br />#!/bin/bash<br />echo “Digite seu nome”<br />read NOME<br />echo “Ola $NOME”<br />12<br />
  13. 13. Estrutura básica dos scripts Bashshell – Comandos Condicionais<br />#!/bin/bash<br />echo “Digite o nome de um arquivo”<br />read ARQ<br />if [ -e $ARQ ]; then<br />echo “$ARQ existe no diretorio atual”<br />else<br />echo “$ARQ nao existe no diretorio atual”<br />fi<br />13<br />
  14. 14. Estrutura básica dos scripts Bashshell – Comandos Condicionais<br />Observações:<br />O que aparece entre colchetes ([ ]) é o teste lógico que será feito.<br />O teste entre colchetes pode aceitar as seguintes opções:<br />-d arquivo: verdade se o arquivoexiste e é um diretório.-e arquivo: verdade se o arquivoexiste.-f arquivo: verdade se o arquivoexiste e é um arquivo regular.<br />14<br />
  15. 15. Estrutura básica dos scripts Bashshell – Comandos Condicionais<br />O teste entre colchetes também funciona com argumentos numéricos:<br />arg1 -eq arg2: verdade se o arg1 for igual a arg2.<br />arg1 -ltarg2: verdade se arg1formenorquearg2.<br />arg1 -gtarg2: verdade searg1for maiorquearg2.<br />arg1 -ne arg2: verdade searg1não for igual a arg2.<br />arg1 -le arg2: verdade se arg1arg2.<br />arg1 -gt arg2: verdade searg1 arg2.<br />arg1 -ne arg2: verdade searg1≠ arg2.<br />15<br />
  16. 16. Estrutura básica dos scripts Bashshell – Comandos Condicionais<br />Para strings, os comandos são os seguintes:<br />arg1 == arg2: verdade se o arg1 for igual a arg2.<br />arg1 != arg2: verdade se arg1fordiferente de arg2.<br />16<br />
  17. 17. Estrutura básica dos scripts Bashshell – Comandos Condicionais<br />#!/bin/bash<br />echo “Digite seu nome”<br />read NOME<br />if [ $NOME == “Andre” ]; then<br />echo“Nome Correto!”<br />exit 0<br />else<br />echo “O nome $NOME não esta correto”<br />exit 1<br />fi<br />Código de saída<br />17<br />
  18. 18. Estrutura básica dos scripts Bashshell – Comandos Condicionais<br />Além do comando if, o BASH aceita o comando case. Veja um exemplo:<br />#!/bin/bash<br />echo “Digite um animal:”<br />read ANIMAL<br />echo -n “O $ANIMAL tem " <br />case $ANIMAL in <br /> cavalo | cachorro | gato) echo -n “quatro";; <br /> homem | canguru ) echo -n "two";; <br /> *) echo -n “um numero desconhecido de";; <br />esac<br />echo" patas." <br />18<br />
  19. 19. Estrutura básica dos scripts Bashshell – Comandos de repetição<br />o BASH também aceita comandos de repetição como os comandos for ewhile. <br />Exemplo de while:<br />#!/bin/bash<br />X=0;<br />while [ $x –lt 10 ]; do<br />echo “x = $X”<br />let X = $X+1<br />done<br />19<br />
  20. 20. Estrutura básica dos scripts Bashshell – Comandos de repetição<br />O comando for temalgumas peculiaridades pouco comuns em linguagens de programação.<br />Exemplo de for:<br />#!/bin/bash<br />for i in 1 2 3<br />do<br /> echo $i<br />done<br />20<br />A cada iteração, o i assume um desses valores<br />
  21. 21. Estrutura básica dos scripts Bashshell – Comandos de repetição<br />Variação do comando for:<br />#!/bin/bash<br />for i in {1 .. 10}<br />do<br /> echo $i<br />done<br />21<br />
  22. 22. Estrutura básica dos scripts Bashshell – Comandos de repetição<br />Outra variação do comando for:<br />#!/bin/bash<br />LIMITE=10<br />for (( a=1; a<=LIMITE; a++))<br />do<br /> echo –n “$a ”<br />done<br />22<br />
  23. 23. Exemplos de scripts mais elaborados<br />Exemplo:<br />Script para listar apenas os diretórios.<br />#!/bin/bashecho "Script para listar apenas os diretorios"CONT=0for ARQ in *; do if [ -d $ARQ -a $ARQ != "." -a $ARQ != ".." ]; then   echo -e " $ARQ"   let CONT=$CONT+1; fidoneif [ $CONT -eq 0 ]; then echo "Nao foram encontrados diretorios" exit 1else echo "Foram listados $CONT diretorios" exit 0fi<br />23<br />

×