agendaembashedialog-121211151239-phpapp02.pdf
-
Upload
junior-medeiros -
Category
Documents
-
view
4 -
download
2
Transcript of agendaembashedialog-121211151239-phpapp02.pdf
-
Arquivo: /home/marcelo/barao/2008/posrll Script/exercicios/agenda.sh Pgina 1 de 3#!/bin/bash# Marcelo Barros de Almeida# [email protected] DIR="/home/marcelo/.agenda"BD="agenda.txt"ARQ="$DIR/$BD"BKP="$DIR/$BD.bkp"TMP="$DIR/$BD.tmp"VER="V0.1" main_menu=( "Listar" "Pesquisar" "Incluir" "Apagar" "Sair" )callbacks=( op_listar op_pesquisar op_incluir op_apagar op_sair ) DIALOG=dialog if [ ! -d "$DIR" ]then
$DIALOG --infobox "Criando diretrio do repositrio ($DIR) ..." 0 0 mkdir "$DIR" sleep 1
fi if [ ! -f "$ARQ" ]then
$DIALOG --infobox "Criando base de dados ($BD) ... " 0 0touch "$ARQ"sleep 1
fi function op_listar(){
$DIALOG --title "Nome|Telefone" --textbox "$ARQ" 0 0return
} function op_pesquisar(){
nome=""while [ "$nome" = "" ]do
nome=$( $DIALOG --stdout --inputbox "Nome ou telefone a procurar:" 0 30 )
[ "$?" = "1" ] && return
nome=$(echo "$nome" | tr "|" "_" )
if [ "$nome" = "" ]then
$DIALOG --msgbox "Insira valor vlido" 0 0 continue
elsebreak
fidone
IFSOLD=$IFSIFS=$'\n'res=$(cat $ARQ | grep $nome)IFS=$IFSOLDif [ "$res" = "" ]then
$DIALOG --title "Resultados da pesquisa para $nome" \--msgbox "Nenhum resultado encontrado." 0 0
else$DIALOG --title "Resultados da pesquisa para $nome" --msgbox "$res" 0 0
fi} function op_incluir()
-
Arquivo: /home/marcelo/barao/2008/posrll Script/exercicios/agenda.sh Pgina 2 de 3{
nome=""while [ "$nome" = "" ]do
nome=$( $DIALOG --stdout --inputbox "Entre o nome:" 0 30 )
[ "$?" = "1" ] && return
nome=$(echo "$nome" | tr "|" "_" )
if [ "$nome" = "" ]then
$DIALOG --msgbox "Insira um nome vlido" 0 0 continue
elsebreak
fidonetel=""while [ "$tel" = "" ]do
tel=$( $DIALOG --stdout --inputbox "Entre o telefone:" 0 30 )
[ "$?" = "1" ] && return
tel=$(echo "$tel" | tr "|" "_" )
if [ "$tel" = "" ]then
$DIALOG --msgbox "Insira um telefone vlido" 0 0 continue
elsebreak
fidone
reg="$nome | $tel"echo $reg >> $ARQ$DIALOG --infobox "Nova entrada adicionada.\nNome: $nome\nTelefone: $tel" 0 0 sleep 0.25
return
} function op_apagar(){
IFSOLD=$IFSIFS=$'\n'lista=( $(cat $ARQ) )op=""n=0for linha in ${lista[*]}do
entrada=$( echo $linha | tr " " "_" )op="$op $n $entrada off "let n=n+1
doneIFS=$IFSOLD
resp=$($DIALOG --stdout --checklist "Marque os nomes que deseja apagar" \
0 0 0 $op)
if [ "$resp" = "" ]then
returnfi
for n in $respdo
idx=$(echo $n | tr -d "\"")
-
Arquivo: /home/marcelo/barao/2008/posrll Script/exercicios/agenda.sh Pgina 3 de 3lista[$idx]=""
done
[ -f $TMP ] && rm $TMPtouch $TMP
IFSOLD=$IFSIFS=$'\n'
for linha in ${lista[*]}do
echo "$linha" >> $TMPdoneIFS=$IFSOLD
mv $ARQ $BKPmv $TMP $ARQ
} function main() {
while [ : ]do
numops=${#main_menu[@]}menu=""for i in $(seq 0 $((numops-1)) )do
op=$( echo ${main_menu[$i]} | tr " " "_" )menu="$menu $i $op "
done
resp=$($DIALOG --stdout --menu "Agenda telefnica ($VER)" 0 0 0 $menu)[ "$?" = "1" ] && exit 1
${callbacks[$resp]}
done } function op_sair(){
exit 0} main