1. 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
2. #!/bin/bash
echo "Introduza o nr. de directorios a criar"
read nrDirs
echo "Introduza as letras iniciais dos directorios a criar"
read ltIni
#seq 2 $nrDirs cria uma sequencia de 1 ao numero
#de directorios especificados pelo usuario
for ndir in `seq 1 $nrDirs`; do
mkdir $ltIni$ndir
done
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/bash
linha=""
echo "Introduza o directorio a operar"
read dir
echo "Entrando no directorio"
cd $dir
echo "Listando conteudos"
ls $dir
echo "Fim da Listagem"
echo "Escolha sua opcao"
echo $linha
echo "1 Mostrar conteudo de um ficheiro"
echo "2 Editar um ficheiro"
echo "3 Remover ficheiro"
echo $linha
read opcao
echo ""
echo "Indique o nome do ficheiro"
read fich
case $opcao in
Sistema Operativos Avançados dr. Jonnathan Guambe
3. 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/lixo
Script del.sh:
#!/bin/bash
#$@ Serve para buscar todos argumentos de uma única vez
#$LIXEIRA – Variável de ambiente definido anteriormente
mv $@ $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 local
mv $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