pequena base de dados

1. pequena base de dados

Rui Costa
rlcostapt

(usa CentOS)

Enviado em 04/01/2014 - 23:36h

Boas pessoal.

Tenho como trabalho de Sistemas Operativos Open-source fazer uma pequena base de dados em shell script.

Eu já escrevi o script quase todo mas deparei-me com uns problemas que não consigo resolver.

Já tentei pesquisar mas como são problemas muito especificos não acho nenhuma solução.

Eu apresento um menu e o utilizador pode escolher entre adicionar remover modificar pesquisar ou ver todos os registros de uma base de dados que nada mais é que um arquivo de texto com campos separados por um "Tab".

Mas o problema está quando o utilizador adiciona um registro com o campo nome composto por mais de duas palavras o arquivo não fica tdos os campos direitinhos nas suas colunas.

Deixo aqui o script. Se alguem me poder ajudar agradeço.

#!/bin/bash
clear
touch -c datafile

adicionar ()
{
read -p "Entre com o nome: " nome
read -n 8 -p "Entre com o seu NIF: " nif; echo ""
read -p "Entre com a morada: " morada
read -n 4 -p "Entre com o código postal: " codp; read -n 3 -p "-" comp; echo ""
read -n 9 -p "Entre com o telefone: " telefone; echo ""
echo "Foi adicionado o seu registro á base de dados."
echo "$nome $nif $morada $codp-$comp $telefone" >> datafile
sort -o datafile datafile
}

visualizar ()
{
echo "
Nome NIF Morada Codigo-Postal Telefone
"
cat ./datafile
echo " "
}

apagar()
{
read -p "Qual o nome que deseja apagar: " apag
grep -i "$apag" datafile | wc -l > $num
case $num in
0) echo "Não existe esse nome na base de dados."
;;
1)
grep -i "$apag" datafile
read -p "É este o registro que deseja apagar? (S/N): " resp
case $resp in
S) grep -v "$apag" datafile > ./datafile.rec
mv ./datafile.rec datafile
;;
s) grep -v "$apag" datafile > ./datafile.rec
mv ./datafile.rec datafile
;;
n) exit
;;
N) exit
;;
*) echo "Opção inválida!"
exit
;;
esac
*) echo "Existem mais do que um registro com esse nome. Restrinja a sua pesquisa."
exit
;;
esac
}

pesquisar()
{
read -p "Qual o nome que deseja pesquisar: " pesq
grep -i "$pesq" datafile
}

echo "
Escolha uma das opções?

Opção Descrição
##### #########
1) Adicionar Registro
2) Apagar Registro
3) Modificar Registro
4) Pesquisar por nome ou nif
5) Visualizar todos os Registros

Escrito por: Rui Costa "

read -p "Escolha uma das opções(1-4): " opc

case $opc in

1) echo ""
adicionar
;;
2) echo ""
apagar
;;
3) echo ""
;;
4) echo ""
pesquisar
;;
5) echo ""
visualizar
;;
*) echo "Opção inválida, por favor selecione uma opção correcta."
exit
;;
esac




  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts