Sunteți pe pagina 1din 3

Centro Universitrio de Joo Pessoa UNIPE

COORDENAO DO CURSO SUPERIOR DE REDES DE COMPUTADORES


DISCIPLINA: PROGRAMAO EM SHELL Professor: Felipe Soares
PERODO: 3 (PRIMEIRO) ESTGIO: 2 (PRIMEIRO)


1. Sobre a estrutura de dados Arrays responda:
a) Dado um vetor chamado PORT que contm os seguintes PORTAS do
Sistema Operacional: 80, 22, 23, 443 e 53, faa as seguintes operaes:

Imprima o primeiro elemento do vetor.
Usando o filtro com expresses aritmticas recupere o ndice do elemento
22.
Liste todos os elementos do vetor.
Imprima a quantidade de elementos do vetor.
Copie o vetor inteiro para outro com o nome PORTAS
#!/bin/bash
PORT=(80 22 23 443 53)
clear
#Imprima o primeiro elemento do vetor
echo "A Primeira porta ${PORT[0]}"
#Usando o Filtro com expresses aritimticas recupere o ndice do elemento 22!
echo ${PORT[10/2-4]}
#Imprima a quantidade de vetor
qporta=${#PORT[*]}
echo "Existem $qporta ativas no array"
#Listagem de todos os elementos do vetor!
i=0
while [ $i -lt $qporta ]; do
echo "$i : ${PORT[$i]}"
let i++
done

b) Implemente um script para bloquear as portas do vetor PORTAS
usando IPTABLES, voc deve usar uma estrutura de repetio como o
for para ler os elementos do vetor e em cada interao preencher a
varivel porta dentro do comando IPTABLES. Abaixo segue as duas
regras do IPTABLES.

iptables -A INPUT -p udp --dport $porta -j DROP
iptables -A INPUT -p tcp --dport $porta -j DROP
#!/bin/bash
PORTIPT=(80 22 23 443 53)
qportaipt=${#PORTIPT[*]}
ipt=0
while [ $ipt -lt $qportaipt ]; do
iptables -A INPUT -p udp --dport ${PORTIPT[$ipt]} -j DROP
iptables -A INPUT -p tcp --dport ${PORTIPT[$ipt]} -j DROP
let ipt++
done

c) Utilize a funo a do comando read e insira dentro de um vetor
chamado PROTOCOLOS os elementos: http, ftp, smtp, pop3, smb e
dhcp. Verifique se o script inseriu os elementos, imprimindo os valores
do vetor PROTOCOLOS utilizando a estrutura de repetio for.
#!/bin/bash
read -a PROTOCOLOS <<< "http ftp smtp pop3 smb dhcp"
for ipcl in 0 1 2 3 4 5
do
echo "Posicao $ipcl :>> ${PROTOCOLOS[$ipcl]}"
done

d) Implemente um array para guardar 7 endereos IPs, e imprimir o seu
contedo usando a estrutura de repetio while.
#!/bin/bash
rcip=0
while [ $rcip -lt 6 ]; do
echo "Entre como ip de posio $rcip;"
read ip$rcip
let rcip++
done
read -a VTRIP <<< "$ip0 $ip1 $ip2 $ip3 $ip4 $ip5 $ip6"
qip=${#VTRIP[*]}
rcip=0
while [ $rcip -lt $qip ]; do
echo "Posicao $rcip :>> ${VTRIP[$rcip]}"
let rcip++
done

2. Como executar uma funo do script1 dentro do script2? Para responder,
implemente um cenrio onde o script1 vai guardar uma funo chamada
permissao() que recebe parmetros para mudar a permisso de um arquivo . O
script2 deve carregar a funo permissao(), ao executar o script2 o usurio
deve passar os parmetros necessrios.
#Aplicativo para mudar as permisses dos arquivos!
#Necessrio Criar dois Arquivos SCRIPT1 e SCRIPT2!
#Arquivo SCRIPT1
#!/bin/bash
function PERMISSAO()
{
echo "Alterando a Permissao do Arquivo $1 para $2 ."
chmod $2 $1
}

#Arquivo SCRIPT2
#!/bin/bash
#carrega o SCRIPT1 na memria
source SCRIPT1
echo -n "Digite o nome do arquivo que deseja alterar a permissao: "
read ARQUIVO
echo -n "Qual a permissao que deseja d ao arquivo: (ex. 744,700,777)"
read PCHMOD

PERMISSAO $ARQUIVO $PCHMOD

3. Funes em shell script no recebe parmetros em sua declarao.Explique uma
forma de se passar parmetros em uma funo Shell script. Implemente um
script para imprimir seu nome completo usando a passagem por parmetro.
#!/bin/bash
function ASSINATURA()
{
echo "Seu nome completo $1 $2 $3 $4"
}

for name in 1 2 3 4
do
echo -n "Digite Seu $name Nome: "
read name$name
done

ASSINATURA $name1 $name2 $name3 $name4

S-ar putea să vă placă și