Escolar Documentos
Profissional Documentos
Cultura Documentos
Shell Script
Estruturas de Repetição
Arrays
Tempo previsto
130-150 Minutos
para as atividades
Resposta:
#!/bin/bash
for arq in `ls`
do
if [ -x "$arq" ]
then
echo "Arquivo $arq tem permissão de execução"
fi
done
Resposta:
#!/bin/bash
do
Resposta:
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Script que lista arquivos de um diretório."
echo "Uso: $0 diretório"
exit
else
contador=0
for arq in $1/*
do
contador=$((contador+1))
if [ -d "$arq" ]
then
echo "$contador -- $arq - DIR - "
else
echo "$contador -- $arq"
fi
done
fi
Resposta:
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Script que conta palavras de um diretório."
echo "Uso: $0 diretório"
exit
else
conta=0
for arq in `ls $1`
do
conta=$((conta+1))
done
echo "O diretório contém $conta palavras"
fi
Resposta:
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Script que lista sequência de 1 até parâmetro passado."
echo "Uso: $0 Numero_inteiro"
exit
else
for num in `seq 1 $1`
do
echo "$num"
done
fi
Resposta:
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Script que lista números pares na sequência de 1 até parâmetro passado."
echo "Uso: $0 Numero_inteiro"
exit
else
for num in `seq 1 $1`
do
par_impar=$((num%2))
if [ $par_impar -eq 0 ]
then
echo "$num"
fi
done
fi
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Script que lista números pares na sequência de 1 até parâmetro passado."
echo "Uso: $0 Numero_inteiro"
exit
else
for num in `seq 1 $1`
do
if [ `expr $num % 2` -eq 0 ]
then
echo "$num"
fi
done
fi
Resposta:
#!/bin/bash
if [ $# -ne 2 ]
then
echo "Script que lista o número do primeiro parâmetro tantas vezes quantas estiverem
especificadas no segundo parâmetro."
echo "Uso: $0 Numero_inteiro Numero_inteiro"
exit
else
for (( i=1; i<=$2; i++ ))
do
echo $1
done
fi
Resposta:
#!/bin/bash
read -p "Digite um valor. 0 para sair: " valor
while (( valor != 0 ))
do
read -p "Digite um valor. 0 para sair: " valor
done
Resposta:
#!/bin/bash
declare -a agenda
read -p "1 - Inserir; 2 - Listar; 3 - Sair " opcao
while (( opcao != 3 ))
do
tamanho_agenda=${#agenda[*]}
case $opcao in
1) read -p "Digite nome e telefone: " agenda[$tamanho_agenda] agenda[$((tamanho_agenda+1))]
;;
2) i=0
while (( i < $tamanho_agenda ))
do
echo "Nome: ${agenda[i]} --- Telefone: ${agenda[$((i+1))]}"
i=$((i+2))
done
;;
esac
read -p "1 - Inserir; 2 - Listar; 3 - Sair " opcao
done
Dica: use o padrão de comparação das expressões regulares para verificar se o parâmetro
contém somente números: [ "$2" =~ ^[+-]?[0-9]*$ ]
Resposta:
#!/bin/bash
function soma ( )
{
local op=$(($1+$2))
echo "soma: $op"
}
function sub ( )
{
local op=$(($1-$2))
echo "sub: $op"
}
function mult ( )
{
local op=$(($1*$2))
echo "mult: $op"
}
function div ( )
{
local op=$(($1/$2))
echo "div: $op"
}