Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #Introduz os dados num ficheiro
- introduzir()
- {
- clear
- nome=""
- morada=""
- telefone=""
- email=""
- # open fd
- exec 3>&1
- # Store data to $VALUES variable
- VALUES=$(dialog --ok-label "Guardar" \
- --backtitle "Lista telefonica" \
- --title "Criar novo contacto" \
- --form "Dados:" \
- 15 50 0 \
- "Nome:" 1 1 "$nome" 1 10 40 0 \
- "Morada:" 2 1 "$morada" 2 10 40 0 \
- "Telefone:" 3 1 "$telefone" 3 10 15 0 \
- "Email:" 4 1 "$email" 4 10 40 0 \
- 2>&1 1>&3)
- # display values just entered
- # echo "$VALUES"
- i=1
- j=4
- while true;do
- valores=`echo "$VALUES" | tail -n $j | head -n 1`
- case $i in
- 1)nome="$valores";;
- 2)morada="$valores";;
- 3)telefone="$valores";;
- 4)email="$valores";;
- esac
- i=`expr $i + 1`
- j=`expr $j - 1`
- test $i -eq 10 && break
- done
- mysql -u root -p -e "INSERT INTO contactos VALUES(NULL,'$nome','$morada','$telefone','$email',NULL)" agenda
- # Ela apertou CANCELAR ou ESC, então vamos sair...
- [ $? -ne 0 ] && break
- }
- # LISTAR DADOS
- listar()
- {
- # open fd
- exec 3>&1
- palavra=$(dialog --ok-label "Ok" \
- --backtitle "Lista telefonica" \
- --title "Mostrar registro" \
- --form "Dados:" \
- 15 50 0 \
- "Nome:" 1 1 "$palavra" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- S=$(mysql -u root -p -e "SELECT * FROM contactos WHERE nome LIKE '$palavra'" agenda)
- [ "$S" ] || { echo "Registro não encontrado";exit; }
- # colocar um TAB como IFS
- IFS="$(echo -e '\t')"
- # Apagamos a primeira linha, pois ela contém o nome dos campos
- S=$(echo "$S" | sed '1d')
- echo "$S" | while read id nome morada telefone email data_insert;
- do
- resultado=$(dialog --ok-label "" \
- --backtitle "Resultados da pesquisa" \
- --title "" \
- --form "Dados:" \
- 15 50 0 \
- "id:" 1 1 "$id" 1 10 40 0 \
- "Nome:" 2 1 "$nome" 2 10 40 0 \
- "Morada:" 3 1 "$morada" 3 10 40 0 \
- "Telefone:" 4 1 "$telefone" 4 10 15 0 \
- "Email:" 5 1 "$email" 5 10 40 0 \
- "Data Inserção :" 6 1 "$data_insert" 6 10 40 0 \
- 2>&1 1>&3)
- done
- }
- # PESQUISA
- pesquisa()
- {
- # open fd
- exec 3>&1
- palavra=$(dialog --ok-label "Ok" \
- --backtitle "Lista telefonica" \
- --title "Pesquisar" \
- --form "Dados:" \
- 15 50 0 \
- "Palavra:" 1 1 "$palavra" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- S=$(mysql -u root -p -e "SELECT * FROM contactos WHERE (nome LIKE '$palavra') OR (morada LIKE '$palavra') OR (telefone LIKE '$palavra') OR (email LIKE '$palavra')" agenda)
- [ "$S" ] || { echo "Registro não encontrado";exit; }
- # colocar um TAB como IFS
- IFS="$(echo -e '\t')"
- # Apagamos a primeira linha, pois ela contém o nome dos campos
- S=$(echo "$S" | sed '1d')
- echo "$S" | while read id nome morada telefone email data_insert;
- do
- resultado=$(dialog --ok-label "" \
- --backtitle "Resultados da pesquisa" \
- --title "" \
- --form "Dados:" \
- 15 50 0 \
- "id:" 1 1 "$id" 1 10 40 0 \
- "Nome:" 2 1 "$nome" 2 10 40 0 \
- "Morada:" 3 1 "$morada" 3 10 40 0 \
- "Telefone:" 4 1 "$telefone" 4 10 15 0 \
- "Email:" 5 1 "$email" 5 10 40 0 \
- "Data Inserção :" 6 1 "$data_insert" 6 10 40 0 \
- 2>&1 1>&3)
- done
- }
- #alterar Nome
- alterarnome()
- {
- S=$(mysql -u root -p -e "SELECT * FROM contactos WHERE nome LIKE '$palavra'" agenda)
- [ "$S" ] || { echo "Nome não encontrado";exit; }
- # open fd
- exec 3>&1
- palavra=$(dialog --ok-label "Novo Nome" \
- --backtitle "Lista telefonica" \
- --title "Escolha o novo nome" \
- --form "Dados:" \
- 15 50 0 \
- "Nome:" 1 1 "$nome" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- mysql -u root -p -e "UPDATE contactos SET nome='$nome' WHERE nome='$palavra'"
- }
- #alterar Morada
- alterarmorada()
- {
- S=$(mysql -u root -p -e "SELECT * FROM contactos WHERE morada LIKE '$palavra'" agenda)
- [ "$S" ] || { echo "Morada não encontrado";exit; }
- # open fd
- exec 3>&1
- palavra=$(dialog --ok-label "Nova Morada" \
- --backtitle "Lista telefonica" \
- --title "Escolha a nova morada" \
- --form "Dados:" \
- 15 50 0 \
- "Morada:" 1 1 "$nome" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- mysql -u root -p -e "UPDATE contactos SET morada='$morada' WHERE morada='$palavra'"
- }
- #alterar Telefone
- alterartelefone()
- {
- S=$(mysql -u root -p -e "SELECT * FROM contactos WHERE telefone LIKE '$palavra'" agenda)
- [ "$S" ] || { echo "Telefone não encontrado";exit; }
- # open fd
- exec 3>&1
- palavra=$(dialog --ok-label "Novo Telefone" \
- --backtitle "Lista telefonica" \
- --title "Escolha o novo telefone" \
- --form "Dados:" \
- 15 50 0 \
- "Telefone:" 1 1 "$telefone" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- mysql -u root -p -e "UPDATE contactos SET telefone='$telefone' WHERE telefone='$palavra'"
- }
- #alterar Email
- alteraremail()
- {
- S=$(mysql -u root -p -e "SELECT * FROM contactos WHERE email LIKE '$palavra'" agenda)
- [ "$S" ] || { echo "Email não encontrado";exit; }
- # open fd
- exec 3>&1
- palavra=$(dialog --ok-label "Novo Email" \
- --backtitle "Lista telefonica" \
- --title "Escolha o novo email" \
- --form "Dados:" \
- 15 50 0 \
- "Email:" 1 1 "$email" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- mysql -u root -p -e "UPDATE contactos SET email='$email' WHERE email='$palavra'"
- }
- #alterar
- alterar()
- {
- exec 3>&1
- palavra=$(dialog --ok-label "Ok" \
- --backtitle "Lista telefonica" \
- --title "Alterar" \
- --form "Nome da pessoa a alterar dados:" \
- 15 50 0 \
- "Nome:" 1 1 "$nome" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- resposta=$(
- dialog --stdout \
- --title 'Lista Telefonica' \
- --menu 'Campo:' \
- 0 0 0 \
- 1 'Nome' \
- 2 'Morada' \
- 3 'Telefone' \
- 4 'Email' \
- 5 'Sair' \ )
- # Ela apertou CANCELAR ou ESC, então vamos sair...
- [ $? -ne 0 ] && break
- # De acordo com a opção escolhida, dispara programas
- case "$resposta" in
- 1) alterarnome ;;
- 2) alterarmorada ;;
- 3) alterartelefone ;;
- 4) alteraremail ;;
- 0) break ;;
- esac
- }
- apagar()
- {
- # open fd
- exec 3>&1
- palavra=$(dialog --ok-label "Ok" \
- --backtitle "Lista telefonica" \
- --title "Apagar" \
- --form "Dados:" \
- 15 50 0 \
- "Nome:" 1 1 "$nome" 1 10 40 0 \
- 2>&1 1>&3)
- [ $? -ne 0 ] && break
- dialog --title "Delete file" \
- --backtitle "Linux Shell Script Tutorial Example" \
- --yesno "De certeza que quer apagar $palavra" 7 60
- # Get exit status
- # 0 means user hit [yes] button.
- # 1 means user hit [no] button.
- # 255 means user hit [Esc] key.
- response=$?
- case $response in
- 0) mysql -u root -p -e "DELETE FROM contactos WHERE nome LIKE '$palavra'" agenda
- echo "Apagado.";;
- 1) echo "Nao apagado.";;
- 255) echo "[ESC] Pressionado.";;
- esac
- }
- # Mostra o menu na tela, com as ações disponíveis
- while : ; do
- resposta=$(
- dialog --stdout \
- --title 'Lista Telefonica' \
- --menu 'Introduza a opção:' \
- 0 0 0 \
- 1 'Introduzir' \
- 2 'Listar' \
- 3 'Pesquisar' \
- 4 'Alterar' \
- 5 'Apagar' \
- 0 'Sair' )
- # Ela apertou CANCELAR ou ESC, então vamos sair...
- [ $? -ne 0 ] && break
- # De acordo com a opção escolhida, dispara programas
- case "$resposta" in
- 1) introduzir ;;
- 2) listar ;;
- 3) pesquisa ;;
- 4) alterar ;;
- 5) apagar ;;
- 0) break ;;
- esac
- done
- # final msg
- echo 'Obrigado por utilizar a agenda e Adeus!'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement