Transcript
Page 1: Iº  Workshop Linux da  Unijorge

Iº Workshop Linux da Unijorge

Shell Script

Page 2: Iº  Workshop Linux da  Unijorge

Tópicos a serem abordados: Apresentação

O que é Shell? Shell Script

Primeiros Scripts Comandos Básicos Saída na Tela Interação com Usuário Variáveis Exercício

Conceitos mais Avançados Recebimento de

Parâmetros If, Case, For e While Exercício

!# /bin/shprompt

Linux

Linguagem Interpretada

echo

datedfw

pwd read

$1 if then

tarX=$((1+2+3))

man

Page 3: Iº  Workshop Linux da  Unijorge

Tópicos a serem abordados: Comandos Avançados

Backup Comando Tar Comando cp

Redirecionamento de E/S Pipelines Variáveis com Argumentos Funções Comando cut Comandos cat e tac Comando grep Comando head Comando nl Comando paste Comando sort Comando tail Comando tr

tar.gz

cp /home

tar -czpf

Page 4: Iº  Workshop Linux da  Unijorge

Shell pode ser definido como o interpretador de instruções e comandos, no nosso caso, do Linux. Quando o usuário ou sistema executa qualquer comando, o Shell é responsável pela correta 'interpretação' deste. Não é para menos que ele é conhecido como 'interpretador de comandos'.

O que é Shell?

Page 5: Iº  Workshop Linux da  Unijorge

O que é Script?

Scripts, podem ser definidos como arquivos executáveis, com instruções definidas, conhecidas e claras, que são executadas por um interpretador.

Page 6: Iº  Workshop Linux da  Unijorge

Então Shell + Script = ?

Podemos então chegar a conclusão que Shell Script nada mais é do que um arquivo texto que pode ser executado (ativando seu bit de execução “x”) , que contém instruções claras e definidas seqüencialmente, escritas de forma que o interpretador Shell possa ler e interpretar.

Page 7: Iº  Workshop Linux da  Unijorge

Antes do Primeiro Script

Se você está acessando o sistema como usuário administrador (root), saia e entre como um usuário normal. É muito perigoso estudar shell usando o superusuário, você pode danificar o sistema com um comando errado.

Page 8: Iº  Workshop Linux da  Unijorge

O primeiro Script agente nunca esquece Passos de um Script1. Escolher o diretório onde colocar o script

3. Criar o arquivo e colocar nele os comandos

4. Colocar a chamada do shell na primeira linha

5. Tornar o script um arquivo executável

2. Escolher um nome para o script

Page 9: Iº  Workshop Linux da  Unijorge

Problemas na execução do Script?

O nome do seu Script não foi encontrado no diretório que você se encontra. Isso quer dizer que ou o nome

foi digitado errado ou ele não existe naquele diretório.

O shell encontrou seu script, mas ele não é executável.

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

Esse dispensa comentários, reveja seus comandos. O interpretador não válida lógica, mas exige que a sintaxe dos comandos esteja 100%

correta.

Page 10: Iº  Workshop Linux da  Unijorge

Mãos a Obra!Vamos escrever um script que informe a data,

tamanho do espaço em disco, usuários logados, diretório corrente e lista arquivos do diretório.

#!/bin/bash

date

df

w

pwd

ls –l

Page 11: Iº  Workshop Linux da  Unijorge

Melhorando nosso Script#! /bin/sh

echo " A data de hoje é: "; datesleep 03

echo " O espaço livre em disco é: "; dfsleep 03

echo " Usuários logados: "; wsleep 03

echo " O diretório onde você se encontra é: "; pwdsleep 03

echo “ O conteúdo desse diretório é: “; ls -l

Page 12: Iº  Workshop Linux da  Unijorge

Interagindo com o Usuário

O comando read permite que uma sequencia de caracteres digitados sejam armazenadas em uma variável.

*Variável – Na programação, uma variável é uma entidade (uma posição, frequentemente localizada na memória) capaz de reter e representar um valor ou expressão. Enquanto as variáveis só "existem" em tempo de execução, elas são associadas a "nomes", chamados identificadores, durante o tempo de desenvolvimento.

Comando READ

Page 13: Iº  Workshop Linux da  Unijorge

O Shell permite a criação de variáveis

Às variáveis são atribuídas valores que são cadeias de caracteres

Não existe a definição de tipo de variável

O nomes de variáveis devem obrigatoriamente iniciar com uma letra ou sublinhado podem ser formadas por:

Letras Números Sublinhados

Exemplo: um, var, VAR, VAR1, VAR_1, _var. Uma variável é criada no momento que é realizado uma atribuição.

Variáveis

Page 14: Iº  Workshop Linux da  Unijorge

Criação e atribuição de valoresvar=”esta é uma string”var=estaeumastringvar=1

Um detalhe importante: NÃO PODE EXISTIR ESPAÇOS ENTRE OS ELEMENTOS DA DECLARAÇÃO/ATRIBUIÇÃO

Quando a string atribuída a variável possuir espaços, é necessário a utilização de aspas duplas no início e no final da string.

As variáveis são case-sensitive, isto é, existe diferenças entre maiúsculas e minúsculas.

Exemplo: var, Var, vaR, vAr.

Variáveis

Page 15: Iº  Workshop Linux da  Unijorge

#! /bin/bash

echo "digite uma variável: "read var1 var2 var3

echo "Primeira variável --> $var1"echo "Segunda variável --> $var2"echo "Terceira variável --> $var3”

Aplicação do Comando Read

Page 16: Iº  Workshop Linux da  Unijorge

São variáveis que são utilizadas para referenciar argumentos passados para um procedimento Shell. Essas variáveis são inicializadas pelo Shell na execução do comando.

As variáveis são:

$# - Número de parâmetros posicionais escritos na linha de comando

$0 – Nome do Script que está sendo executado

$1 .... $9 – Parâmetros posicionais

$* - Lista que contém o conjunto dos argumentos passados para a rotina Shell.

Variáveis com Argumentos

Page 17: Iº  Workshop Linux da  Unijorge

Mãos a Obra!Vamos escrever um script onde serão passados

no momento da execução 04 (quatro) parâmetros, que deveram ser exibidos na tela no momento da execução juntamente com o nome do script e o número de argumentos que foram passados.

#! /bin/bash

echo “Você passou $# parâmetros”

echo “O parâmetro zero é o nome da rotina que é $0”

echo “O primeiro parâmetro é $1”

echo “O segundo parâmetro é $2”

echo “A lista de parâmetros é $*”

Page 18: Iº  Workshop Linux da  Unijorge

Até o momento todos os comandos foram executamos sequencialmente.O Shell permite a utilização de comandos de controle de fluxo.

Decisão ifcase

Repetiçãowhile for

Controle de Fluxo

Page 19: Iº  Workshop Linux da  Unijorge

if [ condição ]then

se condição for verdadeira execute todos os comandos até o else

else

se condição não é verdadeira execute todos os comandos até o fi

fi

** condição é a comparação entre dois valores

** observar sempre o formato [xcondiçãox], onde x corresponde a um espaço.

Condicional

Page 20: Iº  Workshop Linux da  Unijorge

CondicionalIf [ condição ]then

se condição é verdadeira execute todos os comandos até elif

elif [ condição ]then

se condition1 é verdadeiro execute todos os comandos até elif

elif [ condição ]then

se condition2 é verdadeiro execute todos os comandos até elif

else

Nenhuma das condições acima são verdadeiras execute todos os comandos até fi

fi

Page 21: Iº  Workshop Linux da  Unijorge

Operadores de Comparação Numéricos

-eq Igual

-ne Diferente

-le Menor igual

-lt Menor que

-ge Maior igual

-gt Maior que

Page 22: Iº  Workshop Linux da  Unijorge

Operadores de Comparação AlfaNuméricos

= Igual

!= Diferente

-z String sem Conteúdo

-n String com Conteúdo

Page 23: Iº  Workshop Linux da  Unijorge

#! /bin/bash

echo “ Digite o nome do diretório/arquivo que deseja verificar: ”read entrada

if [ -d entrada]then

echo “ É um diretório! ”elif [ -f entrada ]then

echo “ É um arquivo! ”else

echo “ Nenhum diretório ou arquivo foi encontrado com esse nome! ”fi

Mãos a Obra!Escreva um script onde será fornecido como entrada um nome de um diretório ou arquivo e o script fará uma busca para informar qual a natureza do entrada fornecida.

Page 24: Iº  Workshop Linux da  Unijorge

case $variável in

padrão1) comando comando;;

padrão2) comando comando;;

padrãoN) comando comando;;

*) commando commando;;

esac

Decisão com Múltiplas Escolhas

Page 25: Iº  Workshop Linux da  Unijorge

Decisão com Múltiplas Escolhas#!/bin/bash

echo "Menu de Escolha "echo "1 - Inclusão "echo "2 - Consulta"echo "3 - Exclusão"echo "4 - Alteração"echo "5 - Fim"echo "Escolha uma opção -> "read op

case $op in

1)echo "Você escolheu a opção Inclusão";; 2)echo “Você escolheu a opção Consulta";; 3)echo “Você escolheu a opção Exclusão";; 4)echo “Você escolheu a opção Alteração";; 5)echo “Você escolheu a opção Fim";; *)echo “Você escolheu uma opção inválida";;

esac

Page 26: Iº  Workshop Linux da  Unijorge

Repetição - for#! /bin/bash

echo " Digite quantos cadastros deseja realizar: "read qt_cadfor ((i=1;i<=qt_cad;i++))do clear echo " Valor de i= $i" echo " Digite o nome: " read nome echo " Digite a idade: " read idade echo " Digite o sexo: " read sexo

done

Page 27: Iº  Workshop Linux da  Unijorge

Repetição - while#! /bin/bash echo " Digite quantos cadastros deseja realizar: "read qt_cad while [ $qt_cad -gt 0 ]do clear echo " Valor de qt_cad = $qt_cad" echo " Digite o nome: " read nome echo " Digite a idade: " read idade echo " Digite o sexo: " read sexo  qt_cad=$(($qt_cad-1)) echo "Quantidade restante: $qt_cad" sleep 01  done

Page 28: Iº  Workshop Linux da  Unijorge

Fazendo Backup com tar e cp#! /bin/bash

op=0while [ $op -ne 3 ]do

echo " Escolha uma das opções abaixo: "echo " [1] - Backup com compressão "echo " [2] - Backup sem compressão "echo " [3] - Sair"read opcase $op in

1)echo "Digite o diretório de origem: " read origem echo "Digite o diretório de destino: " read destino tar -zcvf $destino\/backup.tar.gz $origem;;

2)echo "Digite o diretório de origem: " read origem echo "Digite o diretório de destino: " read destino cp -va $origem $destino;;

3)exit;; *)echo " Opção Inválida! "

esacdone

Page 29: Iº  Workshop Linux da  Unijorge

#! /bin/bash

echo " Digite quantos cadastros deseja realizar: "read qt_cadfor ((i=1;i<=qt_cad;i++))do clear echo " Valor de i= $i" echo " Digite o nome: " read nome echo " Digite a idade: " read idade echo " Digite o sexo: " read sexo echo " Nome: $nome " >> lista.txt echo " Idade: $idade " >> lista.txt echo " Sexo: $sexo" >> lista.txt echo

done

Redirecionamento de E/S

Page 30: Iº  Workshop Linux da  Unijorge

Top Related