Shell Script Parte 2.

Slides:



Advertisements
Apresentações semelhantes
Criando aplicações WEB
Advertisements

Curso Basico de Linux Marcela Santos
Python: Funções Claudio Esperança.
Programação em Java Prof. Maurício Braga
Programação de Computadores
Estruturas de Repetição
Administração de sistemas operacionais
Parte I Capítulo 5 Reutilizando código e escrevendo funções.
Componente Curricular Sistemas Operacionais - SOP
Shell Script Professor: João Paulo
Processos no Unix e Linux
XML - Extensible Markup Language
Apresentação da linguagem Python
Linguagem C Estruturas de Seleção.
Administração de Sistemas Operacionais
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Capítulo 10 Strings & File I/O. Strings Strings são um conjunto de Caracteres ASCII. No Controle de Instrumentação pode-se converter valores numéricos.
Comandos para navegação no Sistema de Arquivos
O Portal do Estudante de Computação
Prof. André Leon S. Gradvohl, Dr.
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 6 Vetores e Matrizes
Ameliara Freire O comando de entrada de dados é utilizado quando desejamos fornecer um valor para um nosso programa. Os dispositivos.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
PHP Tipos de dados Constantes.
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Linguagem de Programação II Parte VII
Linguagem de Programação II Parte IX
Aula prática 6 Vetores e Matrizes
Apresentação Shell Script
Matlab Mini Curso PET 2012.
Monitoria de Sistemas Inteligentes
Instalação  A tela abaixo é a primeira a aparecer durante a instalação do Caché 5. O diretório selecionado será usado para salvar alguns arquivos usados.
Vetores Imagine que você tem que receber o nome e a nota de 50 alunos de uma escola, e depois listar o nome de cada um e a média final de cada aluno e.
Aula 13 - Armazenamento de Dados em Arquivos
Técnicas de Desenvolvimento de Programas
Professor Cristiano Mariotti
Linux Prof. Fabio Santos, D.Sc
Sistemas Operacionais II O Shell Bash. Objetivos Conhecer a sintaxe dos comandos; Trabalhar com funções; Trabalhar com variáveis; Expressões aritméticas;
Usuários e Grupos Usuário: alguém que possui conta, internamente é tratado como um número (UID) que é a identificação do usuário (USER ID). Cada usuário.
Aula Prática 4 Monitoria IP/CC (~if669).
Aula Prática 3 Funções Monitoria Introdução à Programação.
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
Introdução ao MATLAB 5.3 para Hidrólogos
Monitoria de Sistemas Inteligentes IF684
Aula Prática 3 Funções Monitoria Introdução à Programação.
Iº Workshop Linux da Unijorge
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Introdução a Programação
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
© Copyright 2008 Algoritmos e Estruturas de Dados 1 IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti.
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
O Portal do Estudante de Computação
Permissões de Acesso No Linux há três modelos de controle de acesso básicos: Read, Write e Execution. Veja um exemplo de permissão básica na figura.
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
SICII (Sistemas Operacionais) – Prof. Alberto  Comandos de console (Linux)
Felipe Nunes Flores – Programa de Educação Tutorial.
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação Linux – Prática Regiane Kawasaki
Linguagem de Programação
Programação para Web I AULA 2 BANCO DE DADOS.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Shell Script Prof. Rafael Paoliello Guimarães FAESA.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Sistemas Operacionais de Redes Introdução ao Linux IGOR ALVES.
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira.
Transcrição da apresentação:

Shell Script Parte 2

Funções Assim como em qualquer "linguagem de programação" o shell script proporciona a utilização de funções. Sintaxe: nome_funcao () { funcao_2;; } nome_funcao_2 () { acao } nome_funcao

Funções Onde: nome_funcao – Funcão criada. acao – Ação a ser tomada. nome_funcao_2;; - Chamada da função nome_funcao_2. nome_funcao – Função que dará inico ao shell script. Será criado um shell script para no qual é possível escolher se será feito uma tabuada do 2 ou do 3 sendo que cada uma é feita por uma função.

Funções principal() { escolha=-1 while [ $escolha -ne 0 ]; do #!/bin/bash principal() { escolha=-1 while [ $escolha -ne 0 ]; do echo "Escolha uma opção" echo "1- Fazer tabuada do 2"; echo "2- Fazer tabuada do 3"; echo "0- Sair"; echo -n ":"; read escolha; if [ "$escolha" -eq "1" ]; then gerarTabuada2 elif [ "$escolha" -eq "2" ]; gerarTabuada3 fi done } 

Funções gerarTabuada3() { for i in {1..10}; do echo "$i*3="$i*3 done } principal 

PASSANDO ARGUMENTOS PARA AS FUNÇÕES Como, depois de declaradas, podemos usar as funções assim como usamos os comandos, também podemos passar argumentos para funções, assim como fazemos com os comandos.  Os argumentos são armazenados da mesma forma que os parâmetros, quando usamos comandos. Ou seja, o nome do script é armazenado na variável '$0', o 1º argumento fica na variável '$1', o 2º na '$2', ... O número total de argumentos na '$#' e todos são armazenados na '$@'. 

PASSANDO ARGUMENTOS PARA AS FUNÇÕES #!/bin/sh  args() {        echo "Nome: $0"        echo "Total: $#"        echo "Primeiro: $1"        echo "Segundo: $2"        echo "Terceiro: $3"        echo        echo "Todos: $@"        echo }  args arg1 arg2 arg3

CÓDIGOS DE RETORNO (RETURN CODES) Como vimos, todo e qualquer comando do Unix retorna algum código. '0' caso tenha dado tudo certo e outro número para mostrar que houve um erro, onde números diferentes são usados para indicar erros diferentes.  O bash armazena o código de retorno do último comando na variável '$?'.  Por exemplo, digite no terminal:  $ comando_inexistente $ echo $?  Que exibirá o erro, pro caso do comando não existir.  Agora, teste um comando que funcione bem:  $ ls $ echo $? 

RETURN Como estes códigos de saída são amplamente usados no *Unix, é uma boa prática fazer o mesmo em seus scripts. Usa-se o comando return [|inteiro], ao invés de exit [|inteiro]nas funções de seu script, pois queremos somente que a função termine, não o script, e retornando um inteiro para o script, fazendo uma comunicação deste com a função.  Se não usarmos um return em uma função, o '$?' armazenará o código de retorno do último comando da função.  Podemos escrever só 'return' sem retornarmos explicitamente um número. Quando a função encontra 'return' ela termina imediatamente (não executa o que vem em seguida) e '$?' armazenará o código de retorno do último comando antes de encontrar da função chegar em 'return'.  Ou retornamos algo específico de nosso propósito. Dentro de condicionais, por exemplo: 

RETURN if(tudo certo)        return 2112 else        return 666

VARIÁVEIS GLOBAIS * Aqui vai uma pequena e importante ressalva, para você que já vem de outra linguagem de programação:  Por padrão, as variáveis em Shell são globais. Se desejar ter uma variável local em suas funções, as declare como 'local'. Exemplo:  local VAR='Existem variáveis locais! Sem isso, as variáveis que você cria dentro das função estarão disponíveis por todo o script, ou caso já existam serão sobrescritas. Portanto, cuidado, dê nomes únicos para as suas variáveis ou adicione o local na frente. 

Variáveis em vetores O shell permite o uso de variáveis em forma de array. Ou seja, vários valores podem ser guardados em uma variável seguindo a ordem de uma indexação. Assim como não é necessário declarar o tipo de variável no início do programa, também não é preciso declarar que uma variável será usada como vetor Um array é criado automaticamente se for atribuído um valor em uma variável da seguinte forma: nomevar[indice]=valor, onde índice é um número maior ou igual a zero. Exemplo: camada[0]=Física camada[1]=Enlace camada[2]=Redes

Variáveis em vetores Outra forma de se atribuir valores em array é: nomevar=(valor1, valor2, ..., valorn).

Variáveis do sistema Existem algumas variáveis que são próprias do sistema e outras que são inicializadas diretamente pelo shell. Algumas dessas variáveis, denominadas variáveis do shell são explicadas abaixo: HOME - Contém o diretório home do usuário. LOGNAME - Contém o nome do usuário atual. IFS - Contém o separador de campos ou argumento (Internal Field Separator ). Geralmente, o IFS é um espaço, tab, ou nova linha. Mas é possível mudar para outro tipo de separador. PATH - Armazena uma lista de diretórios onde o shell procurará pelo comando digitado. PWD - Contém o diretório corrente.

Variáveis do sistema PS1 - Esta é denominada Primary Prompting String. Ou seja, ela é a string que está no prompt que vemos no shell. Geralmente a string utilizada é: • \s O nome do shell. • \u Nome do usuário que está usando o shell. • \h O hostname • \w Contém o nome do diretório corrente desde a raiz. • \d Mostra a data no formato: dia_da_semana mês dia. • \nnn Mostra o caracter correspondente em números na base octal. • \t Mostra a hora atual no formato de 24 horas, HH:MM:SS. • \T Mostra a hora atual no formato de 12 horas, HH:MM:SS

Variáveis do sistema PS2 - Esta é denominada Secondary Prompting String. Ela armazena a string do prompt secundário. O padrão usado é o caracter >. Mas pode ser mudado para os caracteres mostrados acima. MAIL - É o nome do arquivo onde ficam guardados os e-mails. COLUMNS - Contém o número de colunas da tela do terminal. LINES - Contém o número de linhas da tela do terminal.