Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas
Operativos II
Solicitante:
I.T.S. — Instituto Tecnológico superior Arias - Balparda
Grupo: 2°BT
Horario: Matutino
Materia: Sistemas Operativos II
Integrantes: Dahiana Basigaluz, Camilo Castro, Pablo Costa
Alcance
Aprender a crear un script en linux, incorporando todos los conocimientos
que obtuvimos durante todo el curso de Sistemas Operativos II.
Índice....................................................................................................................................... 3
1. ¿Por qué elegimos este diseño?...................................................................................... 4
2. Diagrama de navegabilidad...............................................................................................5
3. Códigos Scripts..................................................................................................................6
1) Login.............................................................................................................................. 6
2) Administrativo.sh.......................................................................................................................... 9
3) Gerente.sh................................................................................................................................. 22
4) CEO.sh.......................................................................................................................................30
5) Clientes.sh................................................................................................................... 38
6) Inmuebles...................................................................................................................................42
7) Contratos.sh............................................................................................................................... 47
4. DATOS DE PRUEBA:.................................................................................................................52
4. Descripción de cada carpeta de archivos de datos......................................................53
Manual de Usuario............................................................................................................... 54
En primer lugar, decidimos usar módulos para que sea más amena la programación
por lo que creamos 7 scripts de los cuales, tres son para el registro de datos, clientes.sh,
inmuebles.sh y contratos.sh. Luego tenemos los programas de cada sección y que permite
realizar ciertas acciones sobre los archivos generados o mismo en los demás scripts.
Por último tenemos el script de Login que es solamente para que el usuario se
pueda loguear y acceder a su respectivo menú.
En segundo lugar, Art Ascii es un arte que se puede utilizar en bash en lugar
de las imágenes y para darle una interfaz más amigable buscamos algunos
elementos relacionados con nuestra Inmobiliaria Costa Luz.
En cuanto a los colores seleccionamos los mismos para cada sección que
utilizamos en programación. Por ejemplo, el verde para CEO, el azul para gerente y
el rojo para ADMIN. No tenemos una razón en sí del por qué pero es algo que nos
gustó y por eso lo colocamos, más bien como un estándar.
1) Login
#!/bin/bash
printf '\e[8;60;100t'
reingresar=-1
while [ $reingresar != 0 ];
do
echo -e "\n"
echo -e "\e[1;34m\t\t
───────────────────────────────────▄▀█▀█▀▄ \e[0m"
echo -e "\e[1;34m\t\t ─────────█▄██▄█
─────────────────────▀▀▀▀▀▀▀▀▀ \e[0m"
echo -e "\e[1;34m\t\t █▄█▄█▄█▄█▐█┼██▌█▄█▄█▄█▄█
─────────────▄─░░░░░▄ \e[0m"
echo -e "\e[1;34m\t\t ███┼█████▐████▌█████┼███
───█──▄─▄───▐▌▌░░░░░▌▌ \e[0m"
echo -e "\e[1;34m\t\t
█████████▐████▌█████████▌▄█▐▌▐█▐▐▌█▌█▌█░░░░░▌▌▌ \e[0m"
echo -e "\e[1;34m\t\t
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀█ \e[0m"
echo -e "\e[1;34m\t\t █░░ ░█▀▀█ ▀█▀ ░█▀▀▀ ░█▄─░█ ░█──░█ ░█▀▀▀ ░█▄─░█
▀█▀ ░█▀▀▄ ░█▀▀▀█ ░░█ \e[0m"
echo -e "\e[1;34m\t\t █░░ ░█▀▀▄ ░█─ ░█▀▀▀ ░█░█░█ ─░█░█─ ░█▀▀▀ ░█░█░█
░█─ ░█─░█ ░█──░█ ░░█ \e[0m"
echo -e "\e[1;34m\t\t █░░ ░█▄▄█ ▄█▄ ░█▄▄▄ ░█──▀█ ──▀▄▀─ ░█▄▄▄ ░█──▀█
▄█▄ ░█▄▄▀ ░█▄▄▄█ ░░█ \e[0m"
echo -e "\e[1;34m\t\t
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄█ \e[0m\n"
if [ ! -f "Log" ]; then
touch "Log.txt"
sleep 1
fi
echo -e "\e[1;34m\t\t
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬๑۩۩๑▬▬▬▬▬▬
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬● \e[0m"
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t\t ● █░░ █▀█ █▀▀ █ █▄░█ ░ ░ ░
● \e[0m"
echo -e "\e[1;34m\t\t ● █▄▄ █▄█ █▄█ █ █░▀█ ▄ ▄ ▄
● \e[0m"
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t ●\e[0m""\e[1;31m ▶▶ Ingrese su cédula sin puntos ni
guiones.""\e[1;34m ● \e[0m"
echo -e "\e[1;34m\t\t ●\t \c"
read -r -p "" ced
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t ●\e[0m""\e[1;31m ▶▶ Ingrese su contraseña.""\e[1;34m
● \e[0m"
echo -e "\e[1;34m\t\t ●\t \e[0;30m\c "
read -r -p "" pass
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t\t ● ● \e[0m"
echo -e "\e[1;34m\t\t
●▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬๑۩۩๑▬▬▬▬▬▬
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬● \e[0m"
timestamp=$(date +"%d""-""%m""-""%y""-""%H:%M:%S")
echo -e ""$ced"":""$timestamp"" >> "Log.txt"
sleep 2
sh gerente.sh
reingresar=0
printf '\e[8;50;150t'
i=1
while [ $i -eq 1 ];
do
clear
echo -e "\n"
echo -e "\e[1;31m\t\t
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀█ "
echo -e "\e[1;31m\t\t █░░
▄▀█ █▀▄ █▀▄▀█ █ █▄░█ █ █▀ ▀█▀ █▀█ ▄▀█ █▀▀ █ █▀█ █▄░█
░░█ "
echo -e "\e[1;31m\t\t █░░
█▀█ █▄▀ █░▀░█ █ █░▀█ █ ▄█ ░█░ █▀▄ █▀█ █▄▄ █ █▄█ █░▀█
░░█ "
echo -e "\e[1;31m\t\t
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄█ \e[0;31m\n\n"
echo -e "\t\e[1;31m ▶▶ Ingrese una opción o su cédula para acceder a su Menú: \e[0m"
echo -e "\t\e[1;33m \c"
read op
clear
case $op in
1)
2)
sh inmuebles.sh
sleep 3
;;
3)
reingresar=-1
while [ $reingresar != 0 ];
do
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————-
█▀▄▀█ █▀█ █▀▄ █ █▀▀ █ █▀▀ ▄▀█ █▀▀ █ █▀█ █▄░█
█▀▄ █▀▀ █▀▄ ▄▀█ ▀█▀ █▀█ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————-
█░▀░█ █▄█ █▄▀ █ █▀░ █ █▄▄ █▀█ █▄▄ █ █▄█ █░▀█
█▄▀ ██▄ █▄▀ █▀█ ░█░ █▄█ ▄█ ————-««\e[0m\n\n"
echo -e "\n"
echo -e "\e[1;31m ▶▶ Ingrese "C" para modificar datos del "Cliente" o "I" para
Inmuebles (0 para volver al Menú anterior).\e[0m"
echo -e "\e[1;33m \c"
read mod
clear
case $mod in
C)
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————-
█▀▀ █░░ █ █▀▀ █▄░█ ▀█▀ █▀▀ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————-
█▄▄ █▄▄ █ ██▄ █░▀█ ░█░ ██▄ ▄█ ————-««\e[0m\n\n"
echo -e "\n"
echo -e "\n"
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 1: Cédula | Campo 2: Nombre | Campo
3: Apellido | Campo 4: Día | Campo 5: Mes | Campo 6: Año | \e[0m"
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 7: Email | Campo 8:Teléfono | Campo
9: Tipo de Cliente | Campo 10: Inmueble |\e[0m"
echo -e "\n"
echo -e "\t\e[32m \c"
cat -n "Clientes/$ced.txt" 2> errorfile.txt
echo -e "\n"
echo -e "\n\e[1;31m ▶▶ Ingrese el número de campo que desea modificar.
Presione 0 para eliminar la línea entera.\e[0m"
echo -e "\e[33m \c"
read campo
else
echo -e "\n"
echo -e "\e[1;31m ▶▶ Ingrese el dato que quiere actualizar o deje en blanco para
dejar el campo vacío y presione Enter.\e[0m"
echo -e "\e[33m \c"
read nuevoDato
mv temp.txt "Clientes/$ced.txt"
I)
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————-
█ █▄░█ █▀▄▀█ █░█ █▀▀ █▄▄ █░░ █▀▀ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————-
█ █░▀█ █░▀░█ █▄█ ██▄ █▄█ █▄▄ ██▄ ▄█ ————-««\e[0m\n\n"
echo -e "\n"
echo -e "\e[1;31m ▶▶ Ingrese el nombre del archivo que desea modificar. Presione 0
para volver al Menú anterior.\e[0m"
echo -e "\e[1;33m \c"
read pad
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 1: Padrón | Campo 2: Departamento | Campo 3:
Calle | Campo 4: N° Puerta | Campo 5: Apto |\e[0m"
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 6: Tamaño | Campo 7: Inmueble | Campo 8:
Servicio |\e[0m"
echo -e "\t\e[32m \c"
cat -n "Inmuebles/$pad.txt" 2> errorfile.txt
else
echo -e "\n"
echo -e "\e[1;31m ▶▶ Ingrese el dato que quiere actualizar o deje en blanco para
dejar el campo vacío y presione Enter.\e[0m"
echo -e "\e[33m \c"
read nuevoDato
mv temp.txt "Inmuebles/$pad.txt"
fi
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 1: Padrón | Campo 2: Departamento | Campo 3:
Calle | Campo 4: N° Puerta | Campo 5: Apto | \e[0m"
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 6: Tamaño | Campo 7: Tipo de Inmueble | Campo 8:
Inmueble | Campo 9: Cantidad de Baños |\e[0m"
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 10: Cantidad de Habitaciones | Campo 11:
Comodidades |\e[0m"
echo -e "\n"
echo -e "\t\e[32m \c"
cat -n "Inmuebles/$pad.txt" 2> errorfile.txt
echo -e "\n"
echo -e "\e[1;31m ▶▶ Ingrese el número de campo que desea modificar. Presione
0 para eliminar la línea entera.\e[0m"
else
echo -e "\n"
echo -e "\e[1;31m ▶▶ Ingrese el dato que quiere actualizar o deje en blanco para
dejar el campo vacío y presione Enter.\e[0m"
echo -e "\e[33m \c"
read nuevoDato
mv temp.txt "Inmuebles/$pad.txt"
fi
else
echo -e "\e[1;31m ▶▶ TERRENO/HABITABLE mal escrito, escriba tal y como
se muestra.\e[0m"
sleep 2.5
clear
fi
;;
0)
clear
echo -e "\n\n"
echo -e
"\t\e[1;31m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;31m Volviendo al Menú anterior. \e[0m"
echo -e
"\t\e[1;31m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 2
clear
reingresar=0
;;
4)
reingresar=-1
while [ "$reingresar" != 0 ]; do
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————-
█▀▀ █▀█ █▄░█ █▀ █░█ █░░ ▀█▀ ▄▀█ █▀▄ █▀▀
█▀▄ ▄▀█ ▀█▀ █▀█ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————-
█▄▄ █▄█ █░▀█ ▄█ █▄█ █▄▄ ░█░ █▀█ █▄▀ ██▄
█▄▀ █▀█ ░█░ █▄█ ▄█ ————-««\e[0m\n\n"
echo -e "\n"
echo -e "\e[1;31m ▶▶ Ingrese "C" para consultar datos del Cliente o "I" para Inmuebles (0
para volver al Menú anterior).\e[0m"
echo -e "\e[1;33m \c"
read con
if [ ! -z "$ced" ]; then
echo -e "\t" ▶▶ Cédula: "$(grep "$ced" "Clientes/$ced.txt" | cut -d ":" -f1)"
echo -e "\t" ▶▶ Nombre: "$(grep "$ced" "Clientes/$ced.txt" | cut -d ":" -f2)"
echo -e "\t" ▶▶ Apellido: "$(grep "$ced" "Clientes/$ced.txt" | cut -d ":" -f3)"
echo -e "\t" ▶▶ Dirección: "$(grep "$ced" "Clientes/$ced.txt" | cut -d ":" -f4)"
echo -e "\t" ▶▶ Teléfono: "$(grep "$ced" "Clientes/$ced.txt" | cut -d ":" -f5)"
echo -e "\t" ▶▶ Email: "$(grep "$ced" "Clientes/$ced.txt" | cut -d ":" -f6)"
echo -e "\n"
echo -e "\e[1;31m ▶▶ Presiona Enter para continuar.\e[0m"
read enter
else
echo -e "\n\e[1;35m ▶▶ Cédula inválida, intente nuevamente.\e[0m"
if [ ! -z "$pad" ]; then
echo -e "\t" ▶▶ Padrón: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f1)"
echo -e "\t" ▶▶ Departamento: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f2)"
echo -e "\t" ▶▶ Dirección: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f3)"
echo -e "\t" ▶▶ Precio: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f4)"
echo -e "\t" ▶▶ Tamaño: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f5)"
echo -e "\t" ▶▶ Tipo de Inmueble: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f6)"
echo -e "\t" ▶▶ Servicios: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f7)"
echo -e "\n"
echo -e "\e[1;31m ▶▶ Presiona Enter para continuar.\e[0m"
read enter
else
echo -e "\e[1;35m ▶▶ Padrón inválido, intente nuevamente.\e[0m"
sleep 2
clear
fi
elif [ "$tipo" == "HABITABLE" ]; then
pad=$(grep "Padrón: $padron" "Inmuebles/$pad.txt")
if [ ! -z "$pad" ]; then
echo -e "\t" ▶▶ Padrón: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f2)"
echo -e "\t" ▶▶ Departamento: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f3)"
echo -e "\t" ▶▶ Dirección: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f4)"
echo -e "\t" ▶▶ Precio: "$(grep "$pad" "Inmuebles/$pad.txt" | cut -d ":" -f5)"
5)
reingresar=-1
while [ $reingresar != 0 ];
do
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————- ▄▀█ █▀▄▀█ █▄▄
█▀▀ █▀█ █▄░█ ▀█▀ █▀█ ▄▀█ ▀█▀ █▀█ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————- █▀█ █░▀░█ █▄█
█▄▄ █▄█ █░▀█ ░█░ █▀▄ █▀█ ░█░ █▄█ ▄█ ————-««\e[0m\n\n"
echo -e "\n"
C)
sleep 2
sh contratos.sh
;;
M)
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 1: Id Contrato | Campo 2: Tipo de contrato | Campo
3: Cliente | Campo 4: Inmueble | Campo 5: Fecha de Inicio | \e[0m\n"
echo -e "\n"
echo -e "\t\e[1;35m ▶▶ Campo 6: Fecha Final | Campo 7: Duración | Campo 8:
Precio | Campo 9: Garantia | Campo 10: Descripcion .\e[0m\n"
echo -e "\n"
echo -e "\t\e[32m \c"
cat -n "Contratos/$modCon.txt"
echo -e "\n"
else
echo -e "\n"
echo -e "\n\e[1;31m ▶▶ Ingrese el dato que quiere actualizar o deje en
blanco para dejar el campo vacío y presione Enter.\e[0m"
echo -e "\e[33m \c"
read nuevoDato
mv temp.txt "Contratos/$modCon.txt"
sleep 3
fi
B)
0)
clear
echo -e "\n\n"
echo -e
"\t\e[1;31m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;31m Volviendo al Menú anterior. \e[0m"
echo -e
"\t\e[1;31m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 2
clear
reingresar=0
;;
*)
echo -e "\e[1;35m ▶▶Letra incorrecta, escriba "C" o "I" tal y como se
muestra.\e[0m"
;;
0)
clear
echo -e "\n\n"
echo -e
"\t\e[1;31m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;31m Saliendo del Programa.\e[0m"
echo -e
"\t\e[1;31m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;34m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;34m Saliendo del Programa..\e[0m"
echo -e
"\t\e[1;34m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;32m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;32m Saliendo del Programa...\e[0m"
echo -e
"\t\e[1;32m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;31m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;31m Saliendo del Programa.\e[0m"
echo -e
"\t\e[1;31m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;34m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;34m Saliendo del Programa..\e[0m"
echo -e
"\t\e[1;34m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
*)
if [ ! -z "$op" ] && [[ $op =~ ^[0-9]{8}$ ]]; then
if grep -q "$op:" "Login/datosLoginCEO.txt"; then
sh ceo.sh
i=0
else
esac
done
3) Gerente.sh
#!/bin/bash
printf '\e[8;50;150t' #comando que me permite abrir la terminal del tamaño que quiero
i=-1
while [ $i != 0 ];
do
clear
echo -e "\n"
echo -e "\e[1;34m\t\t
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ "
echo -e "\e[1;34m\t\t █░░ ░█▀▀█ ░█▀▀▀ ░█▀▀█ ░█▀▀▀ ░█▄─░█ ▀▀█▀▀
░█▀▀▀ ░░█ "
echo -e "\e[1;34m\t\t █░░ ░█─▄▄ ░█▀▀▀ ░█▄▄▀ ░█▀▀▀ ░█░█░█ ─░█──
░█▀▀▀ ░░█ "
echo -e "\e[1;34m\t\t █░░ ▒█▄▄█ ░█▄▄▄ ░█─░█ ░█▄▄▄ ░█──▀█ ─░█──
░█▄▄▄ ░░█ "
echo -e "\e[1;34m\t\t
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
\e[1;31m\n\n"
clear
case $op in
1)
if [ ! -d "Contatos/ContratosOK" ]; then
mkdir -p "Contratos/ContratosOK"
fi
registrar=0
while [ $registrar != 1 ];
do
echo -e "\n"
echo -e "\e[31m\t\t »»————-
▄▀█ █░░ ▀█▀ ▄▀█ █▀ █▀▄ █▀▀
█▀▀ █▀█ █▄░█ ▀█▀ █▀█ ▄▀█ ▀█▀ █▀█ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————-
█▀█ █▄▄ ░█░ █▀█ ▄█ █▄▀ ██▄
█▄▄ █▄█ █░▀█ ░█░ █▀▄ █▀█ ░█░ █▄█ ▄█
————-««\e[0m\n"
echo -e "\n".
if [ ! -d "Contratos" ]; then
else
listado=($(ls Contratos)) #arreglo que contiene los nombres de los
contratos
if [ -n "$contrato" ]; then
echo -e "\e[1;34m ▶▶ Has seleccionado
el contrato $contrato \e[0m"
echo -e "\n"
else
echo -e "\e[1;35m ▶▶ Opción incorrecta,
intente nuevamente.\e[0m"
sleep 2
clear
break
fi
reingresarResp=-1
while [ $reingresarResp != 0 ];
do
else
echo -e "\e[1;35m ▶▶ SI/NO mal
escrito, escribalo tal y como se muestra.\e[0m"
sleep 2
tput cuu 3
tput ed
sleep 1
reingresarResp=1
fi
done
done
fi
done
;;
2)
clear
registrar=-1
while [ $registrar != 0 ];
do
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————- █▄▄ ▄▀█ ░░█ ▄▀█
█▀▄ █▀▀ █▀▀ █░░ █ █▀▀ █▄░█ ▀█▀ █▀▀ █▀
————-««\e[0m"
echo -e "\e[31m\t\t »»————- █▄█ █▀█ █▄█ █▀█
█▄▀ ██▄ █▄▄ █▄▄ █ ██▄ █░▀█ ░█░ ██▄ ▄█
————-««\e[0m\n"
echo -e "\n"
echo -e "\e[1;33m"
ls Clientes/*.txt 2> errorfile.txt
if [ -f "Clientes/$clienteBorrar.txt" ]; then
else
rm "Clientes/$clienteBorrar.txt"
echo -e "\e[1;34m ▶▶ El archivo ha sido eliminado
correctamente.\e[0m"
sleep 2
clear
fi
else
if [ ! -d "Clientes" ]; then
echo -e "\e[1;34m ▶▶ No existe Clientes, intente ingresar uno
desde el Menú Administrativo. \e[0m"
echo -e "\n"
sleep 3
clear
fi
fi
done
;;
3)
reg=-1
while [ $reg != 0 ];
do
clear
echo -e "\e[1;33m"
ls Inmuebles/*.txt 2> errorfile.txt
if [ -f "Inmuebles/$inmuebleBorrar.txt" ]; then
if [ -z "$inmuebleBorrar" ]; then
else
rm "Inmuebles/$inmuebleBorrar.txt"
echo -e "\e[1;34m ▶▶ El archivo ha sido
eliminado correctamente.\e[0m"
sleep 2
clear
fi
elif [[ "$inmuebleBorrar" = "0" ]]; then
reg=0
clear
else
if [ ! -d "Inmuebles" ]; then
echo -e "\e[1;34m ▶▶ No existen Inmuebles,
intente ingresar uno desde el Menú Administrativo. \e[0m"
echo -e "\n"
sleep 3
clear
4)
sh admin.sh
i=0
;;
0)
clear
echo -e "\n\n"
i=0
echo -e
"\t\e[1;31m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;31m Saliendo del Programa.\e[0m"
echo -e
"\t\e[1;31m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;34m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;34m Saliendo del Programa..\e[0m"
echo -e
"\t\e[1;34m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;32m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;32m Saliendo del Programa...\e[0m"
echo -e
"\t\e[1;32m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;31m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;31m Saliendo del Programa.\e[0m"
echo -e
"\t\e[1;31m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
*)
else
echo -e "\n"
echo -e "\t\e[1;31m ▶▶ Opción o cédula incorrecta, intente
nuevamente.\e[0m"
sleep 2
clear
fi
fi
;;
esac
done
4) CEO.sh
#!/bin/bash
printf '\e[8;50;150t'
clear
prog=-1
while [ $prog != 0 ];
do
echo -e "\n"
echo -e "\e[1;32m\t\t █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ \e[0m"
echo -e "\e[1;32m\t\t █░░ ░█████╗░███████╗░█████╗░ ░░█ \e[0m"
echo -e "\e[1;32m\t\t █░░ ██╔══██╗██╔════╝██╔══██╗ ░░█ \e[0m"
echo -e "\e[1;32m\t\t █░░ ██║░░╚═╝█████╗░░██║░░██║ ░░█ \e[0m"
echo -e "\e[1;32m\t\t █░░ ██║░░██╗██╔══╝░░██║░░██║ ░░█ \e[0m"
echo -e "\e[1;32m\t\t █░░ ╚█████╔╝███████╗╚█████╔╝ ░░█ \e[0m"
echo -e "\e[1;32m\t\t █░░ ╚════╝░╚══════╝░╚════╝░ ░░█ \e[0m"
echo -e "\e[1;32m\t\t █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ \e[0m\n\n"
case $op in
1)
k=0
while [ "$k" == "0" ]; do
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————- █▄░█ █░█ █▀▀ █░█ █▀█ █▀
█░█ █▀ █░█ ▄▀█ █▀█ █ █▀█ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————- █░▀█ █▄█ ██▄ ▀▄▀ █▄█ ▄█
█▄█ ▄█ █▄█ █▀█ █▀▄ █ █▄█ ▄█ ————-««\e[0m\n\n"
echo -e "\n"
repetir=-1
while [ $repetir != 0 ]; do
if [ ! -z "$pass" ]; then
x=0
while [ $x -eq 0 ]; do
echo -e "\n\e[1;32m ▶▶ Ingrese el tipo de usuario: A para
Administrativo, G para Gerente y C Ceo.\e[0m"
echo -e "\e[1;33m \c"
read tipo
case $tipo in
A)
echo -e "\n$user:$pass" >> Login/datosLoginADMIN.txt
x=1
echo -e "\n\e[1;34m ▶▶ Datos guardados correctamente.\e[0m"
sleep 3
clear
repetir=0
;;
G)
echo -e "\n$user:$pass" >> Login/datosLoginGERENTE.txt
x=1
echo -e "\n\e[1;34m ▶▶ Datos guardados correctamente.\e[0m"
sleep 3
clear
repetir=0
;;
C)
echo -e "\n$user:$pass" >> Login/datosLoginCEO.txt
x=1
echo -e "\n\e[1;34m ▶▶ Datos guardados correctamente.\e[0m"
sleep 3
clear
repetir=0
;;
*)
echo -e "\n\e[1;35m ▶▶ Tipo no válido, vuelve a ingresarlo.\e[0m"
sleep 3
clear
x=0
;;
esac
done
else
echo -e "\n\e[1;35m ▶▶ Ingrese la contraseña.\e[0m"
sleep 2
echo -e "\n"
fi
else
echo -e "\e[1;32m ▶▶ La cédula ya existe en el archivo, intente
nuevamente.\e[0m"
sleep 2
echo -e "\n"
tput cuu 5
tput ed
sleep 1
fi
else
echo -e "\e[1;32m ▶▶ La cédula es inválida, intente nuevamente.\e[0m"
sleep 2
echo -e "\n"
tput cuu 5
tput ed
sleep 1
fi
done
k=20
done
clear
;;
2)
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————-
▄▀█ █▀▀ ▀█▀ █░█ ▄▀█ █░░ █ ▀█ ▄▀█ █▀▀ █ █▀█ █▄░█
█▀▄ █▀▀ █░░ █▀█ █▀█ █▀▀ █▀▀ █ █▀█ ————-««\e[0m"
echo -e "\e[31m\t\t »»————
█▀█ █▄▄ ░█░ █▄█ █▀█ █▄▄ █ █▄ █▀█ █▄▄ █ █▄█ █░▀█
█▄▀ ██▄ █▄▄ █▀▀ █▀▄ ██▄ █▄▄ █ █▄█ ————-««\e[0m\n\n"
echo -e "\n"
done
;;
3)
sh gerente.sh
;;
4)
sh admin.sh
5)
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————-
▄▀█ █░█ ▀█▀ █▀▀ █▄░█ ▀█▀ █ █▀▀ ▄▀█ █▀▀ █ █▀█ █▄░█ █▀
▀ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————
█▀█ █▄█ ░█░ ██▄ █░▀█ ░█░ █ █▄▄ █▀█ █▄▄ █ █▄█ █░▀█ ██
▄ ▄█ ————-««\e[0m\n\n"
echo -e "\n"
echo -e "\e[1;34m\c"
cat -n "Log.txt" 2> errorfile.txt
echo -e "\n\e[1;35m ▶▶ Presione Enter para continuar.\e[0m"
read enter
clear
;;
6)
clear
clear
echo -e "\n"
echo -e "\e[31m\t\t »»————-
█▀█ █▀▀ █▀ █▀█ ▄▀█ █░░ █▀▄ █▀█ █▀ ————-««\e[0m"
echo -e "\e[31m\t\t »»————
█▀▄ ██▄ ▄█ █▀▀ █▀█ █▄▄ █▄▀ █▄█ ▄█ ————-««\e[0m\n\n"
else
mkdir -p Respaldos/Login
mkdir -p Respaldos/Contratos
mkdir -p Respaldos/Clientes
mkdir -p Respaldos/Inmuebles
cp -r Login Respaldos/Login
cp -r Contratos Respaldos/Contratos
cp -r Clientes Respaldos/Clientes
cp -r Inmuebles Respaldos/Inmuebles
echo -e "\n\e[1;34m ▶▶ Datos respaldados correctamente.\e[0m"
sleep 3
clear
fi
fi
;;
0)
clear
echo -e "\n\n"
echo -e
"\t\e[1;31m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;31m Saliendo del Programa.\e[0m"
echo -e
"\t\e[1;31m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;34m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;34m Saliendo del Programa..\e[0m"
echo -e
"\t\e[1;34m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
echo -e
"\t\e[1;32m╔═════════.✵.══════════════════════════╗\e[0m"
echo -e "\t\e[1;32m Saliendo del Programa...\e[0m"
echo -e
"\t\e[1;32m╚═════════════════════════.✵.══════════╝\e[0m\n"
sleep 0.5
clear
echo -e "\n\n"
*)
;;
esac
done
5) Clientes.sh
#!/bin/bash
printf '\e[8;50;150t'
clear
registrar=0
while [ $registrar != 1 ];
do
echo -e "\n"
echo -e "\e[1;36m\t\t ─────█─▄▀█──█▀▄─█───── \e[0m"
echo -e "\e[1;36m\t\t ────▐▌──────────▐▌──── \e[0m"
echo -e "\e[1;36m\t\t ────█▌▀▄──▄▄──▄▀▐█──── \e[0m"
echo -e "\e[1;36m\t\t ───▐██──▀▀──▀▀──██▌─── \e[0m"
echo -e "\e[1;36m\t\t ──▄████▄──▐▌──▄████▄── \e[0m"
echo -e "\e[1;36m\t\t █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
\e[0m"
echo -e "\e[1;36m\t\t █░░ ░░█ \e[0m"
echo -e "\e[1;36m\t\t █░░ █▀▀ █ █ █▀▀ █▄ █ ▀█▀ █▀▀ █▀ ░░█ \e[0m"
echo -e "\e[1;36m\t\t █░░ █▄▄ █▄▄ █ ██▄ █ ▀█ █ ██▄ ▄█ ░░█ \e[0m"
echo -e "\e[1;36m\t\t █░░ ░░█ \e[0m"
echo -e "\e[1;36m\t\t █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
\e[0m"
if [ -z "$ced" ]; then
echo -e "\e[1;35m ▶▶ La cédula no puede estar vacía. Ingrese una cédula válida.\e[0m"
sleep 1.5
clear
continue
fi
else
if [[ $ced =~ ^[0-9]{8}$ ]] && [ ! -f "Clientes/$ced.txt" ]; then
echo -e "\e[1;35m ▶▶ Cédula ingresada correctamente.\e[0m"
echo -e "\n"
echo -e "\e[1;36m ▶▶ Ingrese su nombre completo.\e[0m"
echo -e "\e[33m \c"
read nomC
echo -e "\n"
fechaReingresar=-1
while [ $fechaReingresar != 0 ];
do
else
echo -e "\e[1;35m ▶▶ La fecha es inválida. Ingrese la fecha con el formato "DD
MM AAAA" DEJANDO UN ESPACIO ENTRE MEDIO.\e[0m"
sleep 2
echo -e "\n"
tput cuu 5
tput ed
sleep 1
fi
done
echo -e "\n"
echo -e "\n"
repetir=-1
while [ $repetir != 0 ];
do
fi
echo -e
""$ced"":""$nomC"":""$dia-$mes-$anio"":""$ema"":""$tel"":""$cliTip"":""$tipoInmuebles"" >>
"Clientes/$ced.txt"
sleep 1.5
echo -e "\n\e[34m ▶▶ Datos guardados correctamente.\e[0m"
registrar=0
fechaReingresar=0
repetir=0
sleep 2
clear
echo -e
""$ced"":""$nomC"":""$dia-$mes-$anio"":""$ema"":""$tel"":""$cliTip"":""$tipoInmuebles"" >>
"Clientes/$ced.txt"
sleep 1.5
echo -e "\n\e[34m ▶▶ Datos guardados correctamente.\e[0m"
registrar=0
fechaReingresar=0
repetir=0
sleep 2
clear
else
done
else
echo -e "\e[1;35m ▶▶ La cédula es inválida o esta repetida. Ingrese solo números y
que sean 8 digitos.\e[0m"
echo -e "\n"
sleep 1.5
clear
fechaReingresar=-1
repetir=-1
continue
fi
fi
done
done
6) Inmuebles
#!/bin/bash
printf '\e[8;50;150t'
clear
registrar=0
while [ $registrar != 1 ];
do
echo -e "\n"
echo -e "\e[1;36m\t\t ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[0m"
echo -e "\e[1;36m\t\t ▒▒▄▄▄▒▒▒█▒▒▒▒▄▒▒▒▒▒▒▒▒ \e[0m"
echo -e "\e[1;36m\t\t ▒█▀█▀█▒█▀█▒▒█▀█▒▄███▄▒ \e[0m"
echo -e "\e[1;36m\t\t ░█▀█▀█░█▀██░█▀█░█▄█▄█░ \e[0m"
echo -e "\e[1;36m\t\t ░█▀█▀█░█▀████▀█░█▄█▄█░ \e[0m"
echo -e "\e[1;36m\t\t ████████▀█████████████ \e[0m"
echo -e "\e[1;36m\t\t
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ \e[0m"
echo -e "\e[1;36m\t\t █░░ ░░█ \e[0m"
if [ -z "$padron" ]; then
echo -e "\e[1;35m ▶▶ El padrón no puede estar vacío. Ingrese una PADRÓN
válido.\e[0m"
sleep 1.5
clear
continue
fi
else
if [ ! -f "Clientes/$padron.txt" ]; then
echo -e "\n"
echo -e "\n"
precioReingresar=0
while [ $precioReingresar != 1 ];
do
tipoReingresar=0
while [ $tipoReingresar != 1 ];
do
fi
echo -e
""$padron"":""$departamento"":""$calle"":""$numPuerta"":""$apto"":""$tam"":""$inmTip"":""$se
rv"":""$precio"" >> "Inmuebles/$padron.txt"
sleep 1.5
echo -e "\n\e[34m ▶▶ Datos guardados
correctamente.\e[0m"
tipoReingresar=1
precioReingresar=1
sleep 2
clear
tipInmReingresar=0
while [ $tipInmReingresar != 1 ];
do
echo -e
""$padron"":""$departamento"":""$calle"":""$numPuerta"":""$apto"":""$tam"":""$inmTip"":""$tip
Inm"":""$cBan"":""$cHab"":""$com"":""$precio"" >> "Inmuebles/$padron.txt"
sleep 1.5
echo -e "\n\e[34m ▶▶ Datos guardados
correctamente.\e[0m"
sleep 2
tipInmReingresar=1
tipoReingresar=1
precioReingresar=1
clear
else
echo -e "\n\e[34m ▶▶
""APARTAMENTO/CASA"" mal ingresado, ingreselo tal y como se muestra.\e[0m"
sleep 2
tput cuu 5
tput ed
sleep 1.5
fi
done
else
echo -e "\e[1;35m ▶▶ Ingrese "TERRENO/HABITABLE" tal y
como se muestra.\e[0m"
sleep 2
echo -e "\n"
tput cuu 5
tput ed
sleep 1
fi
done
else
done
7) Contratos.sh
#!/bin/bash
printf '\e[8;50;150t'
clear
reingresar=0
while [ $reingresar != 1 ]; do
echo -e "\n"
echo -e "\e[1;36m\t\t ──▄▀▀▀▄─────────────── \e[0m"
echo -e "\e[1;36m\t\t ──█───█─────────────── \e[0m"
echo -e "\e[1;36m\t\t ─███████─────────▄▀▀▄─ \e[0m"
echo -e "\e[1;36m\t\t ░██─▀─██░░█▀█▀▀▀▀█░░█░ \e[0m"
echo -e "\e[1;36m\t\t ░███▄███░░▀░▀░░░░░▀▀░░ \e[0m"
echo -e "\e[1;36m\t\t
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ \e[0m"
echo -e "\e[1;36m\t\t █░░ ░░█ \e[0m"
echo -e "\e[1;36m\t\t █░░ █▀▀ █▀█ █▄░█ ▀█▀ █▀█ ▄▀█ ▀█▀ █▀█ █▀
░░█ \e[0m"
echo -e "\e[1;36m\t\t █░░ █▄▄ █▄█ █░▀█ ░█░ █▀▄ █▀█ ░█░ █▄█ ▄█
░░█ \e[0m"
echo -e "\e[1;36m\t\t █░░ ░░█ \e[0m"
echo -e "\e[1;36m\t\t
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ \e[0m"
if [ -z "$idcontrato" ]; then
echo -e "\e[1;35m ▶▶ El ID no puede estar vacío. Ingrese un ID válido.\e[0m"
sleep 1.5
clear
continue
fi
echo -e "\n"
echo -e "\e[1;36m ▶▶ Ingrese apellido del Cliente involucrado.\e[0m"
echo -e "\e[33m \c"
read apellidoCliente
echo -e "\n"
echo -e "\e[1;36m ▶▶ Ingrese Padrón involucrado.\e[0m"
echo -e "\e[33m \c"
read padron
repetir=-1
while [ $repetir != 0 ]; do
echo -e "\n"
echo -e "\e[1;36m ▶▶ Ingrese tipo de contrato: "COMPRA/VENTA/ALQUILER", tal y
como se muestra."
echo -e "\e[33m \c"
read tipo
while [ $fechaIReingresar != 0 ]; do
echo -e "\n\e[1;36m ▶▶ Ingrese fecha de inicio con el formato "dd-mm-aa", tal y
como se muestra."
echo -e "\e[33m \c"
read fechaI
while [ $fechaFReingresar != 0 ]; do
echo -e "\e[1;36m ▶▶ Ingrese fecha final con el formato "dd-mm-aa", tal y como
se muestra."
echo -e "\e[33m \c"
read fechaF
fechaIReingresar=0
precioReingresar=0
garantiaReingresar=0
repetir=0
clear
else
echo -e "\e[1;35m ▶▶ La fecha es inválida. Ingrese la fecha con el formato
"dd-mm-aa".\e[0m"
sleep 2
echo -e "\n"
tput cuu 5
tput ed
sleep 1
fi
done
else
echo -e "\e[1;35m ▶▶ COMPRA/VENTA/ALQUILER mal escrito, intente
nuevamente.\e[0m"
sleep 2
echo -e "\n"
tput cuu 5
tput ed
sleep 1
fi
done
while [ $precioReingresar != 0 ]; do
echo -e "\e[1;36m ▶▶ Ingrese precio por mes del alquiler."
echo -e "\e[33m \c"
read precio
garantiaReingresar=-1
while [ $garantiaReingresar != 0 ]; do
echo -e "\e[1;36m ▶▶ Ingrese tipo de garantía "ANDA/CONTADURIA/DEPOSITO",
tal y como se muestra."
echo -e "\e[33m \c"
read garantia
4. DATOS DE PRUEBA:
Para acceder por primera vez al programa hemos dejado algunos datos de prueba:
● Login CEO:
○ Usuario: 53781328
○ Contraseña: 01091991
● Login GERENTE:
○ Usuario: 56603806
○ Contraseña: 20122006
● Login ADMIN:
○ Usuario: 53235874
○ Contraseña: 25062003
Esta carpeta contiene los tres archivos .txt donde guardamos los datos de logueo de
usuario y contraseña. En nuestro caso para mayor seguridad, hicimos un archivo txt para
cada sección con los nombres ‘datosLoginCEO’, ‘datosLoginGERENTE’ y
‘datosLoginADMIN’.
En esta carpeta colocamos los archivos con los datos de los clientes. El archivo.txt
tendrá como nombre la cédula del cliente.
Esta va a contener los archivos que se generan cuando registramos los inmuebles.
Los mismos tienen como nombre el Padrón del inmueble.
4.5. Log.txt
En este archivo se registran los usuarios que se han logueado.
4.6. ErrorFile.txt
En este archivo se envían los errores de los comandos para que no aparezcan en la
terminal cuando se ejecute el script.
⚠️ATENCIÓN⚠️
ESTE SCRIPT SOLO PUEDE SER UTILIZADO POR EL EMULADOR GIT PARA
TERMINALES DE LINUX. CUALQUIER OTRA TERMINAL PUEDE PRODUCIR ERROR
EN SU EJECUCIÓN.
● Menú Administrativo:
● Inmuebles:
● Clientes
● Contratos