• Nenhum resultado encontrado

Script shell. Exemplo de um script shell. Script shell. José Pedro Oliveira if case. for while until. Sistemas Operativos

N/A
N/A
Protected

Academic year: 2021

Share "Script shell. Exemplo de um script shell. Script shell. José Pedro Oliveira if case. for while until. Sistemas Operativos"

Copied!
6
0
0

Texto

(1)

Introdu¸c˜

ao `

a bash

Programa¸c˜ao

Jos´e Pedro Oliveira

(jpo@di.uminho.pt)

Grupo de Sistemas Distribu´ıdos Departamento de Inform´atica

Escola de Engenharia Universidade do Minho

Sistemas Operativos 2005-2006

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Conte´

udo

1 Programa¸c˜ao Script shell Vari´aveis Parˆametros 2 Estruturas de controlo if case 3 Ciclos for while until

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Script shell

Descri¸c˜ao

A primeira linha deve conter #! seguido do nome de um interpretador (por exemplo: #!/bin/sh)

As restantes linhas devem conter instru¸c˜oes v´alidas para esse interpretador

O ficheiro deve ter o atributo x. Este atributo pode ser

activado atrav´es do comando chmod (por exemplo: chmod

a+x nome script)

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Exemplo de um script shell

Exemplo de um script shell

1 #!/bin/sh 2 3 # Coment´ario 4 5 date -I 6 uname -s -r

(2)

Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Exemplo de um script perl

Exemplo de um script perl 1 #! / u s r / b i n / p e r l −w 2 use s t r i c t ; 3 4 my $ c a d e i r a = ’ CSI ’ ; 5 6 p r i n t ” C a d e i r a : $ c a d e i r a \ n ” ;

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Permiss˜

ao de execu¸c˜

ao

Altera¸c˜ao de permiss˜oes Alternativa 1: modo simb´olico

$ chmod a+x nome ficheiro

Alternativa 2: modo num´erico (octal)

$ chmod 755 nome ficheiro

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Vari´

aveis

Vari´aveis

para guardar um valor numa vari´avel utiliza-se o s´ımbolo = (n˜ao utilizar espa¸cos antes e depois do sinal de atribui¸c˜ao) para mostrar o valor de uma vari´avel utiliza-se o s´ımbolo $ Exemplo

1 #!/bin/sh

2

3 ABC=123

4

5 echo Valor da vari´avel ABC: $ABC

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Vari´

aveis: exemplo

Exemplo

1 #!/bin/sh

2

3 DATA=`date -I`

4

5 echo Data: $DATA

(3)

Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Parˆ

ametros

Vari´aveis

$#- n´umero de parˆametros

$*- lista de parˆametros

$1- parˆametro n´umero 1

$2- parˆametro n´umero 2

. . .

$n- parˆametro n´umero n

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos Script shell Vari´aveis Parˆametros

Parˆ

ametros: exemplo

Script exemplo03.sh

1 #!/bin/sh

2

3 echo "N´umero de par^ametros: $#" 4 echo "Lista de par^ametros : $*"

5 echo " Primeiro : $1"

6 echo " Segundo : $2"

$ ./exemplo03.sh abc 123

N´umero de par^ametros: 2

Lista de par^ametros : abc 123

Primeiro : abc

Segundo : 123

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos if case

Conte´

udo

1 Programa¸c˜ao Script shell Vari´aveis Parˆametros 2 Estruturas de controlo if case 3 Ciclos for while until

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos if case

Instru¸c˜

ao if

Sintaxe 1 if [condi¸c˜ao] then comando. . . fi Sintaxe 2 if [condi¸c˜ao]; then

comando. . . fi

(4)

Programa¸c˜ao Estruturas de controlo Ciclos if case

Instru¸c˜

ao if

Sintaxe 3 if [condi¸c˜ao1 ] then comando. . . elif [condi¸c˜ao2 ] then

comando. . . else

comando. . . fi

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos if case

Exemplo

Script shell #!/bin/sh if [ $# != 3 ]; then

echo "Erro: este script precisa de 3 par^ametros"

exit 1 fi

cat $1 $2 | sort | nl -b a > $3

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos if case

Instru¸c˜

ao case

Sintaxe case ”$vari´avel” in

condi¸c˜ao1) comando. . . ;; condi¸c˜ao2) comando. . . ;; esac

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos if case

Exemplo

Extracto de um script shell ... case "$1" in start) echo "start" ;; stop) echo "stop" ;; *) echo "default" ;; esac ...

(5)

Programa¸c˜ao Estruturas de controlo Ciclos for while until

Conte´

udo

1 Programa¸c˜ao Script shell Vari´aveis Parˆametros 2 Estruturas de controlo if case 3 Ciclos for while until

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos for while until

Ciclo for

Sintaxe 1 for arg in [lista] do

comando. . . done Sintaxe 2 for arg in [lista]; do

comando. . . done

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos for while until

Exemplos

Listar argumentos (linha de comando) #!/bin/sh

for arg do

echo $arg done

Opera¸c˜ao sobre uma lista de ficheiros #!/bin/sh

for fic in *.sh; do echo $fic done

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos for while until

Exemplo

Criar backup de um conjunto de ficheiros #!/bin/sh

for f in *.c; do cp -p $f $f.bak done

Recorrendo apenas `a linha de comando

$ for f in *.c; do cp -p $f $f.bak; done

(6)

Programa¸c˜ao Estruturas de controlo Ciclos for while until

Ciclo while

Sintaxe 1 while [condi¸c˜ao] do

comando. . . done Sintaxe 2 while [condi¸c˜ao]; do

comando. . . done

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Programa¸c˜ao Estruturas de controlo Ciclos for while until

Ciclo until

Sintaxe 1 until [condi¸c˜ao] do

comando. . . done Sintaxe 2 until [condi¸c˜ao]; do

comando. . . done

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash Referˆencias

Conte´

udo

4 Referˆencias

Jos´e Pedro Oliveira Introdu¸c˜ao `a bash

Referˆencias

Referˆ

encias

Documenta¸c˜ao GNU Bash http://www.gnu.org/software/bash/manual/bash.html Bibliografia

Learning the bash Shell (segunda edi¸c˜ao)

http://www.oreilly.com/catalog/bash2/ Advanced Bash-Scripting Guide

http://www.tldp.org/LDP/abs/html/index.html

Referências

Documentos relacionados

E também para família constituido de Unidade do Conjunto Habitacional disponível para agregado familiar com Idoso ou Deficiência, somente de acordo com a ” Relação dos

O jogo possibilita a experiência estética ao usuário uma vez que o transporta para um espaço onde, por um novo olhar, o sujeito encontra a oportunidade de refletir

BORYOKUDAN nem com os seus membros, e declarar que não possui nenhum antecedente criminal em relação à sociedade. O valor da RENDA MÉDIA MENSAL ※7 do interessado deverá ser acima

★ Recepção do requerimento de inscrição: A partir de 1º de outubro (5ª), nas respectivas instituições (por ordem de chegada).. ★ Público alvo: Crianças com mais

The crossovers, RCA cables and voltmeters offered by Soundigital follow the same quality standards as our amplifiers, assuring an excellent quality and high power

Diante destas considerações, propomos como uma atividade pedagógica a utilização do software Wingeom para o ensino da Geometria Espacial, em especial para o

Um desses escritores é Robert Weber, cujo primeiro texto literário tem por objetivo transmitir, da ótica alemã, a monstruosidade que fora o Tratado de

Complementando o que já foi dito antes, a lei foi necessária até que se cumprisse a promessa feita a Abraão, e ela serviu de orientação para o povo de Deus, até que Jesus