Soa cap2 exercicios resolvidos shell

4
Exercícios Resolvidos -Shell Script- 1. Crie uma Script que lê 2 números e determine a adição e multiplicação destes. #!/bin/bash echo "Introduza o 1o. numero" read n1 echo "Introduza o 2o. numero" read n2 echo $[ $n1 + $n2 ] echo $[ $n1 * $n2 ] 2. Crie uma Script que lê um numero e determine se o mesmo é par ou ímpar. #!/bin/bash echo "Introduza o numero" read no if [ $(($no%2)) = 0 ] then echo "Numero par" else echo "Numero impar" fi 3. Crie uma Script que imprime números de 1 a 5 usando ciclo for. #!/bin/sh for i in 1 2 3 4 5 do echo "Numero $i" done 4. Crie uma Script usando ciclo for que imprime valores de 10  a 0; #!/bin/bash for (( i=10; i>=0; i-- )) do echo $i done 5. Script que cria directórios de acordo com um número de directórios especificado pelo usuário bem como as letras iniciais dos directórios a criar. Sistema Operativos Avançados dr. Jonnathan Guambe

Transcript of Soa cap2 exercicios resolvidos shell

Page 1: Soa cap2 exercicios resolvidos shell

Exercícios Resolvidos­Shell Script­

1. Crie uma Script que lê 2 números e determine a adição e multiplicação destes.

#!/bin/bash

#

echo "Introduza o 1o. numero"read n1echo "Introduza o 2o. numero"read n2

r

echo $[ $n1 + $n2 ]echo $[ $n1 * $n2 ]

2. Crie uma Script que lê um numero e determine se o mesmo é par ou ímpar.#!/bin/bash

#

echo "Introduza o numero"read no

r

if [ $(($no%2)) = 0 ]thenecho "Numero par"elseecho "Numero impar"fi 

3. Crie uma Script que imprime números de 1 a 5 usando ciclo for.#!/bin/shfor i in 1 2 3 4 5doecho "Numero $i"done

4. Crie uma Script usando ciclo for que imprime valores de 10  a 0;#!/bin/bash

for (( i=10; i>=0; i­­ ))doecho $idone

5. Script que cria directórios de acordo com um número de directórios especificado pelo usuário bem como as letras iniciais dos directórios a criar.

Sistema Operativos Avançados  dr. Jonnathan Guambe

Page 2: Soa cap2 exercicios resolvidos shell

#!/bin/bashecho "Introduza o nr. de directorios a criar"read nrDirs

r

echo "Introduza as letras iniciais dos directorios a criar"read ltIni

r

#seq 2 $nrDirs ­ cria uma sequencia de 1 ao numero #de directorios especificados pelo usuariofor ndir in `seq 1 $nrDirs`; domkdir $ltIni$ndirdone

6. Crie um script, que ao ser executado liste as seguintes opções: Solicite o nome do directório desejado, entre nesse directório e liste seu conteúdo. 

1 ­ Solicita o nome do arquivo a ser impresso. 

2 ­ Solicita o nome do arquivo a ser editado. 

3 ­ Solicita o nome do arquivo a ser excluído. 

4 ­ Para sair do script.#!/bin/bashlinha="­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­"echo "Introduza o directorio a operar"read dir

r

echo "­­­­­Entrando no directorio­­­­"cd $direcho "­­­­­Listando conteudos­­­­"ls $direcho "­­­­­Fim da Listagem­­­­"

echo "­­­­­­­­­­­­­­Escolha sua opcao­­­­­­­­­­­­­"echo $linhaecho "1 ­ Mostrar conteudo de um ficheiro"echo "2 ­ Editar um ficheiro"echo "3 ­ Remover ficheiro"echo $linharead opcaoecho ""

e

echo "Indique o nome do ficheiro"read fich

r

case $opcao in

Sistema Operativos Avançados  dr. Jonnathan Guambe

Page 3: Soa cap2 exercicios resolvidos shell

1) cat $fich;;2) gedit $fich;;3) rm $fich;;*)echo "Opcao invalida"

esac

7. Escreva um conjunto de scripts para efectuar gestão de remoção de arquivos. A script del deve mover os arquivos passados como parâmetros para um directório lixeira; o script undel deve mover arquivos da lixeira para o directório corrente e o script lsdel deve listar o conteúdo da lixeira. O directório lixeira deve ser definido através da variável de ambiente $LIXEIRA. R:Antes de correr as scripts, garantir que o directório que servira como lixeira existe e definir a 

variável de ambiente executando na linha de comando o seguinte: export LIXEIRA=/tmp/lixoScript del.sh:#!/bin/bash

#$@ ­ Serve para buscar todos argumentos de uma única vez#$LIXEIRA – Variável de ambiente definido anteriormentemv $@ $LIXEIRA

==>Exemplo da execução do exercício anterior executando na linha de comando:$touch test{1,2,3,7,9}.txt$mkdir /tmp/lixo$export LIXEIRA=/tmp/lixo$./del.sh test1.txt test3.txt test9.txt

Script undel.sh:#!/bin/bash

#$@ ­ Serve para buscar todos argumentos de uma única vez#$LIXEIRA – Variável de ambiente definido anteriormente#. ­ refere ao directório localmv $LIXEIRA/* .

Script lsdel.sh:#!/bin/bash

#$@ ­ Serve para buscar todos argumentos de uma única vez#$LIXEIRA – Variável de ambiente definido anteriormente

Sistema Operativos Avançados  dr. Jonnathan Guambe

Page 4: Soa cap2 exercicios resolvidos shell

ls ­lh $LIXEIRA

Sistema Operativos Avançados  dr. Jonnathan Guambe