Oficina de ShellScript

Documentos relacionados
Introdução ao Shell Script

Introdução a. Shell Script. Clésio Matos

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO E AUTOMAÇÃO

Resumo da Matéria de Linguagem de Programação. Linguagem C

Se não existisse uma variável de ambiente chamada PATH você teria que digitar todo o caminho do comando para listar por exemplo:

Scripts Shell. João Medeiros 1 / 20

2 echo "PHP e outros.";

Programação WEB I Estruturas de controle e repetição

Formação de Administradores de Redes Linux LPI level 1. Aula 2 SENAC TI Fernando Costa

Daniel Darlen. IV SDSL Brasília DF Dezembro de Introdução ao Bash p.1/62

Algoritmos com VisuAlg

Programação Shell. Estrutura de um shell script. Programação em Redes Ver: 1.0

105 Shell Script. João Bosco Teixeira Junior

Administração de Redes de Computadores

SISTEMAS OPERATIVOS I

UFRJ IM - DCC. Departamento de Ciência da Computação. Tópicos Especiais em Programação. 14/10/2013 Profª Valeria Menezes Bastos 1

Internet e Programação Web

Shell scripts - Bash

OPERADORES E ESTRUTURAS DE CONTROLE

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Programação. Instrutor Airton Kuada - airton@fesppr.br Curitiba, julho de 2004

PHP. Hypertext Pre-Processor

Sistemas Operacionais de Rede Linux - Gerenciamento de Arquivos

Programação para Servidores. Cassio Diego

Introdução à Linguagem

Uso Eficiente da Linha de Comando com os Shells do Unix. Fábio Olivé

Algoritmos e Programação

Algoritmos e Programação Estruturada

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Revisão Aula Anterior Estruturas de Decisão (If e Switch)

Python: Comandos Básicos. Claudio Esperança

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

AMBIENTE DE PROGRAMAÇÃO PYTHON

Aula 02. Introdução ao Linux

Microsoft Excel 2007

Lista de operadores de comparação - > Maior que - < Menor que - <= Menor ou igual a - >= Maior ou igual a - === Igual a -!

Sistema Operacional Unidade 5 - Iniciando o modo texto. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Shell Script. Rafael Silva Guimarães

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Algoritmos em Javascript

Introdução a Sistemas Abertos. Shell Script

José Frazão Scripts Página 2 de 22

Programação Web Prof. Wladimir

INTRODUÇÃO À LINGUAGEM C++

Prof. Esp. Adriano Carvalho

Programando em shell-script 1. Primeira parte, uma introdução

Programação Básica em Arduino Aula 2

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

CURSO DE PROGRAMAÇÃO EM JAVA

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Fundamentos de Programação II. Introdução à linguagem de programação C++

Introdução ao. Script. Baltazar Tavares (Psycho Mantys)

Arquitetura de Computadores. Tipos de Instruções

Shell Script. Arthur, Luis Filipe, Rodrigo

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

PRINCIPAIS QUESTÕES DO PROCESSO DO WS SINAL E SINAL 6.0

Aula 04 - Hackeando a linha de comando

Curso de Programação Computadores

10) REGISTROS : Exemplos: var N,I: integer; A,B,C: real; CHAVE: boolean; CARAC: char; V: array[1..20] of real; M: array[1..10,1..

Introdução à Lógica de Programação

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

COMPILADORES E INTERPRETADORES

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Criar a classe Aula.java com o seguinte código: Compilar e Executar

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Programação Web Prof. Wladimir

Introdução ao PHP. Prof. Késsia Marchi

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Aula 02 Excel Operações Básicas

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Aluísio Eustáquio da Silva

Instituto Federal do Sertão-PE. Curso de PHP. Professor: Felipe Correia

Testando e Comparando Valores

O que é o JavaScript?

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCENS UFES Departamento de Computação. Shell Script

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

PHP AULA1. Prof. Msc. Hélio Esperidião

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

V 1.0 LINAEDUCA - GUIA DE USO

1. Sistemas de numeração

CONVENÇÃO DE CÓDIGO JAVA

Programação WEB II. Conhecendo o PHP. Prof: Kelly E. Medeiros Bacharel em Sistema de Informação. Módulo III

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Conceitos básicos da linguagem C

Docas do Pará - Guia de Instalação

Algoritmos e Estruturas de Dados I 01/2013. Arquivos. Pedro O.S. Vaz de Melo

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador

Introdução aos cálculos de datas

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

GNU/Linux/Bash. Aula 2

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

UFRJ IM - DCC. Departamento de Ciência da Computação. Tópicos Especiais em Programação. 13/06/2012 Profª Valeria Menezes Bastos 1

Transcrição:

Oficina de ShellScript Segunda Parte Wildcards Variáveis de Ambiente Comans em Shell Script Parâmetros para o programa Mais comans /dev/null Bruno L. Albrecht Felipe A. Chies PET Computação UFRGS

Wildcards Recurso utiliza para especificar um ou mais arquivos/diretório de uma vez só. Permite a filtragem que será lista/copia/ apaga/etc É uma feature que deixa a shell mais poderosa que a GUI no trato de arquivos. Quatro tipos: *,?, [ ] e { }

Wildcards *: qualquer coisa! (zero ou mais caracteres) rm *.txt apaga tos os arquivos que terminem com.txt?: um único caractere qualquer! rm log?.txt log1.txt, loga.txt, lob[.txt, etc rm *?.* tos os arquivos não ocultos Obs.: para nos referirmos a um arquivo que um wildcard no nome, utilizamos '\wildcard'

Wildcards [ ] : um s caracteres listas (ou não) [abcd] : a ou b ou c ou d [a d] : qualquer um no intervalo de 'a' a 'd' [!abcd] : qualquer um, menos a,b,c,d [!a d] : qualquer um, menos os que estão no intervalo de 'a' a 'd' Exemplo: su umount /dev/[hs]d[a d][1 9] desmonta tos os dispositivos

Wildcards { } : cada opção separada por vírgulas é considerada apenas uma vez echo t{r,igr,rist}es tres tigres tristes echo alun{o,a}{,s} aluno alunos aluno alunos

ShellScript: Introdução Shell Interpretar de comans; Script É uma descrição geral de qualquer programa escrito em linguagem interpretada, ou seja, não compilada; Temos script em PHP, Ruby, script em PERL e também Shell Script;

Objetivos Facilitar as tarefas repetidas adminstrar: evita a redigitação de comans; podem ser agendas para execução através da tabela crontab (man cron); Scripts podem fazer tarefas complexas podemos combinar diversos comans, com controlares de fluxo e variáveis; São rápis de serem crias e não precisam ser compilas;

Hello World Muito simples: simples!!! Crie o arquivo: gedit hello.sh & #!/bin/bash echo "Hello World!!!" Para executá lo: chmod +x hello.sh./hello.sh

Variáveis O bash reconhece uma variável quan ela começa com $; Declaração: var= valor valor pode ser número, frase, outras variáveis ou coman. Pode ser expressa entre (aspas duplas), ' ' (apóstrofes) ou ` `(crases);

Variáveis Aspas duplas: valor da variável será interpreta; variavel="meu login é: $USER" echo $variavel Meu login é: Bruno Apóstrofes: declaração literal variavel='meu login é: $USER' echo $variavel Meu login é: $USER

Entre crases Crases: vão interpretar os comans declaras. Se forem combinas com texto numa expressão, deve se usar as aspas juntamente!!! variavel= Meu diretório atual é: `pwd` echo $variavel Meu diretório atual é: /home/bruno Obs.: É o mesmo que $(coman) var=$(pwd)

PARÂMETROS É um array de parâmetros! De $1 a $9 $0 nome programa $# quantidade de parâmetros $* conjunto de tos os parâmetros Shift n utiliza para deslocar n parâmetros

Variáveis de Ambiente São variáveis LOCAIS ou GLOBAIS já definidas pelo sistema operacioal Podem ser redefinidas Exemplo: O nome usuário é determina a partir de uma variável de ambiente: $USER

Variáveis de Ambiente Principais variáveis globais: PATH diretório onde podem ser encontras os executáveis USER nome (login) usuário HOME diretório home usuário HOST nome host (máquina) SHELL shell ativo PS1 mensagem no terminal IFS separar de parâmetros (default: ) A lista completa pode ser obtida através coman

Variáveis de Ambiente Para definir uma variável de ambiente GLOBAL: export VARIAVEL=conteú Para definir uma variável de ambiente LOCAL: VARIAVEL=conteu Exemplo: export PATH=$PATH:/meu_dir Obs.: esta forma de definir variáveis é TEMPORÁRIA, ou seja, apenas enquanto o shell estiver ativo

Variáveis de Ambiente Para definir variáveis globais e locais PERMANENTEMENTE, devemos alterar os seguintes arquivos: ~./bashrc somente para o usuário atual /etc/bash.bashrc para tos os usuários Imprimir o conteú de uma variável: echo $VARIAVEL Deletar uma variável: unset VARIÁVEL

Expressões aritméticas Para o Shell executar operações aritméticas, devemos utilizar $((expressão)) echo $((2+2)) var1=$((var2+var1)) Ou então, o coman let: let var1++ let var2

Expressões aritméticas x++, ++x, x, x: [pós,pré] [in,de]cremento x**y: potenciação (x y ) x*y, x/y, x%y: multiplicação, divisão, resto <, <=, >, >=, ==,!=: comparações &&, : AND e OR lógicos

Comans: test Descrição: testar qualquer coisa! test $var1 lt $var2 Obs.: resulta em $?

if O coman if testa o STDERR (variável de ambiente $?), mas, para ficar semelhante à sintaxe C, utilizamos o coman test If test $variavel gt 10 then echo é maior que 10 else echo é menor que 10 fi If [ $variavel gt 10 ] then echo é maior que 10 else echo é menor que 10 fi Atalho coman test no if: [ expressão ] não espaço antes e depois da expressão

case Para não precisarmos concatenar milhares de ifs, utilizamos o case: if [ $var eq 1 ] then <comans> elif [ $var eq 2 ] then <comans> elif [ $var eq 3 ] then <comans> elif [ $var eq 4 ] then <comans> else <comans> fi case $var in 1) <comans> ;; 2) <comans> ;; 3) <comans> ;; 4) <comans> ;; *) <comans> esac Não há ;; no último grupo Para fechar o case, usamos esac Podemos usar wildcards nos padrões de grupos. ex.: [1 4],?,??, 3 4,?0?5, [1234] etc

For for numero in um is três quatro cinco echo "Contan: $numero" ne Um coman muito útil para utilizar o for é o seq, que gera sequências de números: for num in $(seq 10) <...> ne for num in $(seq 0 2 10) <...> ne for num in $(seq 6 10) <...> ne

For for par echo "Parâmetro: $par" ne Neste caso, não colocamos o in depois da variável. Isto serve para a variável (no caso par ) receber cada parâmetro passa para o programa a cada laço for.

For Podemos ainda usar uma sintaxe parecida com a C. for ((i=0 ; i<=9 ; i++)) echo n $i ne for (( ; i<=9 ; )) let i++; echo n $i ne Outra forma de for for arq in * let i++; echo $i > $arq ne 1 > arquivo1.txt 2 > arquivo2.sh 3 > arquivo3.bla 4 > arquivo4.c etc...

Break e Continue break: pára o laço continue: ignora o que tem embaixo e volta para o início laço for ((i=0 ; ; i++)) echo n $i if [ i lt 9 ] then continue else break ne $./testefor 0 1 2 3 4 5 6 7 8 9 for ((i=0 ; ; i++)) echo n $i if [ i eq 9 ] then break; ne $./testefor2 0 1 2 3 4 5 6 7 8 9

While Utilizan um contar com o while: i=0 while test i le 10 i=$((i+1)) echo "Contan: $i" ne while : if test f /tmp/lock then echo "Aguardan lock..." sleep 1 else break fi ne Para um loop infinito (sain com break):

Until Igual ao while, mas o teste é feito após os comans serem executas i=0 until [ $i eq 9 ] echo n $i let i++ ne until! who grep pet sleep 60 ne echo n usuário pet foi embora!! echo às $(date %H:%Mh ) $./testeuntil 0 1 2 3 4 5 6 7 8 $ $./testeuntil2 pet pts/0 Jan 4 16:47 (143.54.12.140) pet pts/0 Jan 4 16:48 (143.54.12.140)... pet pts/0 Jan 4 17:39 (143.54.12.140) usuário pet foi embora às 17:39h!! $

Interação com o usuário read: recebe uma lista de parâmetros e salva nas variáveis Se houver mais parâmetros que variáveis, a última recebe o resto echo: imprime uma mensagem no STDOUT $ read var1 var2 var3 Curso de ShellScript $ echo $var1 Curso $ echo $var2 de $ echo $var3 ShellScript $ read var1 var2 Curso de ShellScript $ echo $var1 Curso $ echo $var2 de ShellScript

Leitura de Arquivos Duas formas: while read LINHA echo $LINHA ne < arquivo.txt Cat arquivo.txt while read LINHA echo $LINHA ne O while termina quan o read encontra um EOF (leitura mal sucedida)