Carga inicial de scripts usados específicamente en Android Termux

main
root 2 months ago
commit ebeb4e8247
  1. 3
      README.md
  2. 138
      fnc_gonzy.sh
  3. 70
      gnz_fotosRenombrar.sh
  4. 20
      gnz_horaSumar.sh
  5. 167
      gnz_imgAtxt.sh
  6. 85
      gnz_qrCrear.sh
  7. 37
      gnz_qrDeco.sh
  8. 90
      gnz_respaldarTermux.sh
  9. 39
      gnz_urlDescifrar.sh
  10. 34
      gnz_urlValidar.sh
  11. 25
      gnz_wwwBuscar.sh
  12. 48
      main_dan-one.sh
  13. 78
      main_gnzTools.sh

@ -0,0 +1,3 @@
#Scripts Bash de Gonzy
Repertorio de scripts Bash que utilizo en el día a día principalmente en mis dispositivos portables.

@ -0,0 +1,138 @@
#!/bin/bash
############################################################################
#
# Utilización: fnc_gonzy.sh
# Versión: 20251010
# Mis funciones y otras utilerias utilizadas
# en mis scripts bash shell.
#
# Funciones:
# center_text($1 texto)
# # Centra $1 en el parrafo.
# display_center($1)
# # Centra varias lineas. Incluso
# # puede ser todo un archivo.
# fnc_gonzy_intro($1 $2 $3)
# # Imprime Titulo $1, Descripcion $2
# y alguna nota $3 para identificar
# la utilidad y uso de la funcion.
#
# Opciones:
# - Colores y estilos de fuentes.
# https://soloconlinux.org.es/colores-en-bash/
#
# Limitaciones:
# -
#
############################################################################
# Reset
Color_Off='\033[0m' # Text Reset
# Regular Colors
Black='\033[30m' # Black
Red='\033[31m' # Red
Green='\033[32m' # Green
Yellow='\033[33m' # Yellow
Blue='\033[34m' # Blue
Purple='\033[35m' # Purple
Cyan='\033[36m' # Cyan
White='\033[37m' # White
# Bold
BBlack='\033[1;30m' # Black
BRed='\033[1;31m' # Red
BGreen='\033[1;32m' # Green
BYellow='\033[1;33m' # Yellow
BBlue='\033[1;34m' # Blue
BPurple='\033[1;35m' # Purple
BCyan='\033[1;36m' # Cyan
BWhite='\033[1;37m' # White
# Cursive
CBlack='\033[3;30m' # Black
CRed='\033[3;31m' # Red
CGreen='\033[3;32m' # Green
CYellow='\033[3;33m' # Yellow
CBlue='\033[3;34m' # Blue
CPurple='\033[3;35m' # Purple
CCyan='\033[3;36m' # Cyan
CWhite='\033[3;37m' # White
# Underline
UBlack='\033[4;30m' # Black
URed='\033[4;31m' # Red
UGreen='\033[4;32m' # Green
UYellow='\033[4;33m' # Yellow
UBlue='\033[4;34m' # Blue
UPurple='\033[4;35m' # Purple
UCyan='\033[4;36m' # Cyan
UWhite='\033[4;37m' # White
# Background
On_Black='\033[m' # Black
On_Red='\033[m' # Red
On_Green='\033[m' # Green
On_Yellow='\033[m' # Yellow
On_Blue='\033[m' # Blue
On_Purple='\033[m' # Purple
On_Cyan='\033[m' # Cyan
On_White='\033[m' # White
# High Intensity
IBlack='\033[90m' # Black
IRed='\033[91m' # Red
IGreen='\033[92m' # Green
IYellow='\033[93m' # Yellow
IBlue='\033[94m' # Blue
IPurple='\033[95m' # Purple
ICyan='\033[96m' # Cyan
IWhite='\033[97m' # White
# Bold High Intensity
BIBlack='\033[90m' # Black
BIRed='\033[91m' # Red
BIGreen='\033[92m' # Green
BIYellow='\033[93m' # Yellow
BIBlue='\033[94m' # Blue
BIPurple='\033[95m' # Purple
BICyan='\033[96m' # Cyan
BIWhite='\033[97m' # White
center_text() {
local text="$1"
local cols=$(tput cols)
local text_len=${#text}
local padding=$(( (cols - text_len) / 2 ))
printf "%*s%s%*s\n" $padding "" "$text" $padding ""
}
display_center() {
local columns=$(tput cols)
while IFS= read -r line; do
local line_len=${#line}
local padding=$(( (columns - line_len) / 2 ))
printf "%*s%s%*s\n" $padding "" "$line" $padding ""
done < "$1"
}
function fnc_gonzy_intro(){
clear
echo -e "${UWhite}"
center_text $1
echo -e "${Color_Off}${CWhite}$2${Color_Off}${UWhite}"
center_text $3
echo -e "\n${Color_Off}"
}
function fnc_msg_color(){
if [[ $1 == 0 ]]; then
echo -e "[ \e[31mx\e[0m ] $2"
elif [[ $1 == 1 ]]; then
echo -e "[ \e[32m✓\e[0m ] $2"
elif [[ $1 == 2 ]]; then
echo -e "[ \e[33m…\e[0m ] $2"
elif [[ $1 == 3 ]]; then
echo -e "[ \e[33m!\e[0m ] $2"
fi
}

@ -0,0 +1,70 @@
#!/bin/bash
# Ultima Modif: 20251010
# Utilidad que quita el prefijo IMG en las fotos
# ubicadas en ~/storage/dcim/Camera
############################################################################
#
# Utilización: fotosRenombrar.sh
# Versión: 20251017
# Utilidad que quita prefijo IMG en fotos
# ubicadas en ~/storage/dcim/Camera.
#
# Funciones:
# Varias pero sin relevancia para usr.
#
# Opciones:
# - Solo se llama al archivo sin parametros.
#
# Limitaciones:
# - Ruta fija.
#
############################################################################
source fnc_gonzy.sh
fnc_gonzy_intro "Fotos_s/IMG" "Elimina prefijo IMG_ de imagenes.\nalmacebadas en ~/storage/dcim/Camera/"
fnc_msg_color 2 "Buscando prefijo."
sleep 1
cuenta=$(ls ~/storage/dcim/Camera/IMG_*.jpg -1 | wc -l)
fnc_msg_color 1 "$cuenta archivos encontrados."
echo -e "\n"
read -p "Ver listado [s/n]?: " -n 1 -r
if [[ ! $REPLY =~ ^[Ss]$ ]] then
echo ""
else
# Ejecutar vista previa
echo -e "\n"
fnc_msg_color 2 "Generando listado."
sleep 1
for FILE
in ~/storage/dcim/Camera/IMG_*.jpg ;
do NEWFILE=`echo $FILE | sed 's/IMG/_/g'` ;
echo -e "${Gray}$FILE${Color_Off} » ${Green}$NEWFILE${Color_Off}" ;
done
fi
# Ejecutar cambio de nombre(s)
echo ""
read -p "Realizar cambios [s/n]?: " -n 1 -r
if [[ ! $REPLY =~ ^[Ss]$ ]] then
echo ""
else
echo ""
clear
for FILE
in ~/storage/dcim/Camera/IMG_*.jpg ;
do NEWFILE=`echo $FILE | sed 's/IMG_//g'` ;
mv "$FILE" $NEWFILE ;
done
clear
fnc_msg_color 1 "Cambios realizados exitosamente."
echo ""
ls -C ~/storage/dcim/Camera/
echo ""
fnc_msg_color 1 "Renombrado terminado!"
fi
fnc_msg_color 2 "Terminando programa!"
echo -e ""
sleep 1
#clear

@ -0,0 +1,20 @@
#!/bin/bash
# Ultima Modif: 20251010
# Suma mimutos a la hora actual.
source fnc_gonzy.sh
fnc_gonzy_intro "Now()+min" "Sumar minutos a la hora actual."
echo ""
read -p "Cuantos minutos sumar?: " VarMinus
clear
VarAhora=`date +"%Y-%m-%d %H:%M:%S"`
VarFuturo=`date -d "now + $VarMinus minutes" +"%Y-%m-%d %H:%M:%S"`
fnc_msg_color 2 "$VarAhora"
fnc_msg_color 2 " + $VarMinus min"
fnc_msg_color 2 "$VarFuturo"
sleep 1
echo -e "\n"
fnc_msg_color 1 "Servido Gonzy!"
echo -e "\n"

@ -0,0 +1,167 @@
#!/bin/bash
############################################################################
#
# Utilización: imgAtxt.sh
# Versión: 20251017
# Utilidad que quita prefijo IMG en fotos
# ubicadas en ~/storage/dcim/Camera.
#
# Funciones:
# Varias pero sin relevancia para usr.
#
# Opciones:
# - Solo se llama al archivo sin parametros.
#
# Limitaciones:
# - Ruta fija.
#
############################################################################
source fnc_gonzy.sh
getHelp () {
-e "\n\nRepositorio en https://github.com/MilanDroid/CIT"
exit 1
}
getParams () {
echo "Imagenes disponibles:"
echo -e "${Yellow}"
ls -p ~/storage/shared/Documents/img2txt/ | grep -v /
echo -e "${Color_Off}"
route=~/storage/shared/Documents/img2txt
directory=$route/txt
read -p "Extension (jpg | jpeg | png)?: " -r
if [ $REPLY == null ]
then
fnc_msg_color 0 "Extension invalida."
fnc_msg_color 2 "Saliendo."
sleep 2
exit 1
else
fnc_msg_color 1 "Formato $REPLY válido."
ext=(${REPLY//;/ })
fi
}
checkRoute () {
if [ ! -d "$route" ]
then
fnc_msg_color 0 "Directorio $route no existe."
exit 1
else
#Llenando el array con los elementos encontrados en la ruta otorgada
IFS=!
files=(`find ~/storage/shared/Documents/img2txt/ -printf %f!`)
fi
}
createDirectory () {
fnc_msg_color 2 "Validando directorio TMP.\n"
if [ ! -d "$directory" ]
then
mkdir $directory || exit 1
fnc_msg_color 1 "Directio TMP creado."
else
read -p "Directorio TMP ya existe, eliminar (S/N)?: " -n 1 -r
echo # (optional) move to a new line
if [[ ! $REPLY =~ ^[Ss]$ ]]
then
fnc_msg_color 2 "Saliendo."
sleep 2
exit 1
else
fnc_msg_color 2 "Eliminando directorio."
sleep 1
rm -rf "$directory/" || exit 1
fnc_msg_color 1 "Directorio TMP eliminado."
fnc_msg_color 2 "Creando directorio."
sleep 1
mkdir $directory || exit 1
fnc_msg_color 1 "Directio TMP creado.\n"
sleep 1
fi
fi
if [ ! -d "$directory/tifs" ]
then
mkdir "$directory/tifs" || exit 1
else
read -p "Directorio /tifs/ existente, eliminar (S/N)?: " -n 1 -r
echo # (optional) move to a new line
if [[ ! $REPLY =~ ^[Ss]$ ]]
then
fnc_msg_color 2 "Saliendo."
sleep 2
exit 1
else
fnc_msg_color 2 "Eliminando directorio."
sleep 1
rm -rf "$directory/tifs/" || exit 1
fnc_msg_color 1 "Directorio /tifs/ eliminado."
fnc_msg_color 2 "Creando directorio."
sleep 1
mkdir "$directory/tifs" || exit 1
fi
fi
}
convertFile () {
alertError=0
fnc_msg_color 2 "Conversion de $1"
magick "$route/$1" "$directory/tifs/${1%.*}.tif" || alertError=1
tesseract "$directory/tifs/${1%.*}.tif" "$directory/${1%.*}" || alertError=2
if [[ $alertError == 0 ]]; then
fnc_msg_color 2 "Archivo saliente =>"
echo -e "${Yellow}$directory/${1%.*}.txt${Color_Off}\n"
let count++
elif [[ $alerError == 1 ]]; then
fnc_msg_color 0 "Error al generar archivo .tif."
let countError++
elif [[ $alerError == 2 ]]; then
fnc_msg_color 0 "Error al generar archivo .txt."
let countError++
fi
}
getFiles () {
count=0
countError=0
for i in ${!files[@]}
do
if [[ "${ext[@]}" =~ "${files[$i]##*.}" ]]
then
convertFile "${files[$i]}"
fi
done
fnc_msg_color 2 "Eliminando archivos tmp en /tifs/"
rm -rf "$directory/tifs/" || exit 1
echo -e "Eliminados: \e[32m✓\e[0m: $count \e[31mx\e[0m: $countError"
fnc_msg_color 1 "Resultado en"
echo -e "${CYellow}$directory${Color_Off}\n"
echo ""
unset ALL_PROXY
}
while getopts ':h' option; do
case "$option" in
h) getHelp
;;
\?) printf "[ \e[31mx\e[0m ] Error: Option: '-%s$OPTARG' does not exist.">&2
echo -e "\n\nTo get help use: '-h'"
exit 1
;;
esac
done
fnc_gonzy_intro "IMG_a_TXT" "Extrae texto de imagenes.\nEl texto es guardado en un archivo."
getParams
checkRoute
createDirectory
getFiles

@ -0,0 +1,85 @@
#!/bin/bash
# Ultima Modif: 20251012
# Convertir JPG o PNG a TXT.
source fnc_gonzy.sh
function fnc_principal(){
fnc_gonzy_intro "QR_Crear" "Crea código QR."
PS3="Tipo de QR?: "
items=(
"Texto"
"Texto.TXT"
"URL"
"Email"
"SMS"
"vCard"
"Calendar"
"WiFi"
)
while true; do
select item in "${items[@]}" Regresar
do
case $REPLY in
1)
clear;
read -p "Texto: " VarQR;
fnc_qr_gral "txt" $VarQR;
break;;
2)
clear;
source qr.sh;
break;;
3)
source qr.sh;
break;;
4)
source qr.sh;
break;;
5)
source qr.sh
break;;
6)
clear;
source qr.sh;
break;;
7)
source qr.sh;
break;;
8)
source qr.sh;
break;;
$((${#items[@]}+1)))
#clear;
#cowsay "..." | lolcat;
#echo -e "\n";
source main_gnzTools.sh;
break 2;;
*)
clear;
echo -e "${Red}";
center_text "La opcion $REPLY no es valida.";
echo -e "${Color_Off}\n";
break;
esac
done
done
}
function fnc_qr_gral(){
dt=`date +%Y%m%d_%H%M%S`
fnc_msg_color 2 "Generando QR."
var_qr=$(qrencode -o ~/storage/shared/Documents/qr2txt/qr-$1_$dt.png -t png -s 15 $2)
sleep 1
fnc_msg_color 1 "Código QR generado."
fnc_msg_color 3 "qr-$1_$dt.png"
echo -e "\n"
ls ~/storage/shared/Documents/qr2txt/
echo -e "\n"
#fnc_msg_color 2 "Abriendo QR."
sleep 1
#xdg-open ~/storage/shared/Documents/qr2txt/qr-$1_$dt.png
echo -e "\n"
}
fnc_principal

@ -0,0 +1,37 @@
#!/bin/bash
# Ultima Modif: 20251012
# Decodificar QR como TXT sin abrir enlaces.
source fnc_gonzy.sh
function fnc_principal(){
fnc_gonzy_intro "QR_Deco" "Decodifica contenido de QR."
VarPathQR="~/storage/shared/Documents/qr2txt/"
fnc_msg_color 2 "Generando listado."
sleep 1
echo -e "\n"
ls ~/storage/shared/Documents/qr2txt
echo -e "\n"
fnc_msg_color 1 "Listado terminado."
echo -e "\n"
read -p "Nombre de QR?: " VarQR
echo -e "\n"
fnc_msg_color 2 "Leyendo código QR."
sleep 1
vtxtdecod=$(zbarimg --quiet --raw ~/storage/shared/Documents/qr2txt/$VarQR)
fnc_msg_color 1 "QR decodificado."
echo -e "\n"
cowsay $vtxtdecod
echo -e "\n"
termux-clipboard-set $vtxtdecod
fnc_msg_color 1 "Valor en portapapeles."
echo -e "\n"
sleep 1
}
fnc_principal

@ -0,0 +1,90 @@
#!/bin/bash
#############################################################################
#
# Utilización: respaldarTermux.sh
# Versión: 20251016
# Crear respaldo en archivo comprimido
# de listado con nombre de fecha y hora
# en que se creó.
#
# Funciones:
# - fncComprimir
#
# Opciones:
# - $ nombre del archivo de respaldo.
#
# Limitaciones:
# - Ruta fija.
#
############################################################################
source fnc_gonzy.sh
function fncComprimir() {
VarNomRes=Termux-Armor28T-gonzy_$1.tar.gz
echo -e "Nombre respaldo: \n${Yellow}$VarNomRes${Color_Off}"
echo -e "\nElementos a respaldar:"
VarR1=~/gonzy_sh
VarR2=~/../usr/etc/bash.bashrc
VarR3=~/.termux/termux.properties
VarR4=~/.motd/99*
echo -e "${Yellow}$VarR1${Color_Off}"
echo -e "${Yellow}$VarR2${Color_Off}"
echo -e "${Yellow}$VarR3${Color_Off}"
echo -e "${Yellow}$VarR4${Color_Off}"
echo -e "\n"
fnc_msg_color 2 "Compilando datos."
sleep 2
fnc_msg_color 1 "Datos listos."
echo -e ""
read -p "Realizar respaldo (S/N)?: " -n 1 -r
if [[ ! $REPLY =~ ^[Ss]$ ]]
then
echo -e "\n"
fnc_msg_color 2 "Saliendo."
sleep 1
clear
else
echo -e "\n"
fnc_msg_color 2 "Comenzando respaldo."
sleep 2
tar -czf ~/gonzy-sd/Documents/Backups/scripts_bash/respaldosAutomatizados/$VarNomRes $VarR1 $VarR2 $VarR3 $VarR4
fnc_msg_color 1 "Datos comprimidos."
fnc_msg_color 1 "Respaldo terminado."
tam_bytes=$(stat -c %s ~/gonzy-sd/Documents/Backups/scripts_bash/respaldosAutomatizados/$VarNomRes)
tam_kb=$(bc <<< "scale=3; $tam_bytes / 1024")
tam_mb=$(bc <<< "scale=3; $tam_kb / 1024")
echo -e "\nTamaño de respaldo"
fnc_msg_color 3 "$tam_bytes bytes"
fnc_msg_color 3 "$tam_kb Kb"
fnc_msg_color 3 "$tam_mb Mb"
sleep 1
echo -e ""
read -p "Enviar respaldo por e-mail (S/N)?: " -n 1 -r
if [[ ! $REPLY =~ ^[Ss]$ ]]
then
echo -e "\n"
fnc_msg_color 2 "Saliendo."
sleep 1
clear
else
echo -e "\nEnviando respaldo por e-mail."
fnc_msg_color 2 "Preparando envío."
echo "Envío automatizado de respaldo." | mutt -a ~/gonzy-sd/Documents/Backups/scripts_bash/respaldosAutomatizados/$VarNomRes -s "Respaldo." -- gonzy.top@gmail.com
sleep 1
fnc_msg_color 1 "Mensaje enviado."
fi
fi
}
fnc_gonzy_intro "Respaldar_Termux." "Crear respaldo Termux."
dt=`date +%Y%m%d_%H%M%S`
# Listado de directorios y archivos
# a respaldar.
fncComprimir $dt
echo -e "\n"

@ -0,0 +1,39 @@
#!/bin/bash
# Ultima Modif: 20251010
# Descifra una URL acortada, lo hace dos veces.
# Uso: url_descifra.sh {url-corta}
source fnc_gonzy.sh
function fncDescifrar(){
UrlAcortada="$1"
if [ "$UrlAcortada" == "" ]; then
echo -e "${Red}"
center_text $UrlAcortada
echo -e "${Color_Off}"
else
Url=$(curl -s --head "$UrlAcortada" 2>/dev/null | grep -i 'location' | awk '{print $2}')
UrlFinal=$(curl -s --head "$Url" 2>/dev/null | grep -i 'location' | awk '{print $2}')
if [ "$UrlFinal" == "" ]; then
pagi="$Url"
else
pagi="$UrlFinal"
fi
fi
echo -e "\n"
termux-clipboard-set $pagi
fnc_msg_color 2 "Descifrando URL."
sleep 1
echo -e "\n"
fnc_msg_color 1 "URL descifrada."
fnc_msg_color 2 $pagi
fnc_msg_color 1 "URL en portapapeles!"
echo ""
}
fnc_gonzy_intro "URL_Descifrar" "Descifra URL acortada.\np.e. https://tinyurl.com/msxc5ydt"
#termux-clipboard-set "https://tinyurl.com/msxc5ydt";
read -p "URL corta: " url_corta;
fncDescifrar $url_corta

@ -0,0 +1,34 @@
#!/bin/bash
# Ultima Modif: 20251012
# Valida si URL está acriva.
# Uso: url_valida.sh {url-a-validar}
source fnc_gonzy.sh
# NO funciona
function valida_a(){
resultado=$(curl -sIL $1 | grep '^HTTP' | tail -1 | awk '{print $2}')
if [[ "$resultado" == "200" ]]; then
echo -e "${Green}Existe${Color_Off}"
elif [[ "$resultado" == "404" ]]; then
echo -e "${Red}No Existe${Color_Off}"
else
echo -e "${Yellow}No lo se.${Color_Off}"
fi
}
# SI funciona
function valida_b(){
echo -e ""
if wget --spider -S "$1" 2>&1 | grep -w "200\|301"; then
fnc_msg_color 1 "URL activo"
else
fnc_msg_color 0 "URL caído"
fi
echo ""
}
fnc_gonzy_intro "URL_Verificar" "Verifica que URL exista."
read -p "URL a validar: " url_validar;
valida_b $url_validar

@ -0,0 +1,25 @@
#!/bin/bash
# Ultima Modif: 20251010
# Busca un texto en browsers
source fnc_gonzy.sh
#google() {
# local query="$*"
# if [ -z "$query" ]; then
# google-chrome "https://www.google.com"
# else
# query=$(echo "$query" | jq -sRr @uri)
# google-chrome "https://www.google.com/search?q=$query"
# fi
#}
function slynx(){
if [[ $(echo $*) ]]; then
searchterm="$*"
else
read -p "Enter your search term: " searchterm
fi
searchterm=$(echo $searchterm | sed -e 's/\ /+/g')
lynx -accept_all_cookies=on http://www.google.com/search?q=$searchterm
}

@ -0,0 +1,48 @@
#!/bin/bash
# Ultima Modif: 20251010
# Herramientas que uso en Danone.
source fnc_gonzy.sh
clear
fnc_menu(){
PS3="Con que te ayudo?: "
items=("↑ 500 gr" "↑ 650 gr" "↑ 750 gr"
"↓ 500 gr" "↓ 650 gr" "↓ 750 gr"
"Fotos")
while true; do
select item in "${items[@]}" Salir
do
case $REPLY in
1)
clear;
echo -e "${Red}Opcion NO disponible aun.${Color_Off}\n${Yellow}Trabajando en opcion $REPLY) $item\n${Color_Off}";
break;;
2) echo "Selected item #$REPLY which means $item"; break;;
3) echo "Selected item #$REPLY which means $item"; break;;
7)
clear;
cowsay -f eyes "Fotos aun no disponibles." | lolcat;
break;;
$((${#items[@]}+1)))
clear;
cowsay "Gracias por usar la herramienta." | lolcat;
echo -e "\n";
break 2;;
*)
clear;
echo -e "${Red}";
center_text "La opcion $REPLY no es valida.";
echo -e "${Color_Off}\n";
break;
esac
done
done
}
figlet -w 50 -c "DAN-ONE" | lolcat
echo -e "${Blue}"
center_text "una app de gonzy.top"
echo -e "${Color_Off}\n"
fnc_menu

@ -0,0 +1,78 @@
#!/bin/bash
# Ultima Modif: 20251010
# Menu de mis herramientas.
source fnc_gonzy.sh
clear
fnc_menu(){
PS3="Script a usar?: "
items=(
"Backup Termux"
"IMG a TXT"
"Fotos s/IMG_"
"Now() + min"
"URL descifrar"
"URL validar"
"QR crear"
"QR decod"
"WWW buscar"
)
while true; do
select item in "${items[@]}" Salir
do
case $REPLY in
1)
clear;
source gnz_respaldarTermux.sh
break;;
2)
clear;
source gnz_imgAtxt.sh;
break;;
3)
source gnz_fotosRenombrar.sh;
break;;
4)
source gnz_horaSumar.sh;
break;;
5)
source gnz_urlDescifrar.sh
break;;
6)
clear;
source gnz_urlValidar.sh;
break;;
7)
source gnz_qrCrear.sh;
break;;
8)
source gnz_qrDeco.sh;
break;;
9)
source gnz_wwwBuscar.sh;
break;;
$((${#items[@]}+1)))
clear;
cowsay "Gracias por usar la herramienta." | lolcat;
echo -e "\n";
exit;
break 2;;
*)
clear;
echo -e "${Red}";
center_text "La opcion $REPLY no es valida.";
echo -e "${Color_Off}\n";
break;
esac
done
done
}
figlet -w 50 -c "Tools" | lolcat
echo -e "${Blue}"
center_text "una app de gonzy.top"
center_text "v-2.0"
echo -e "${Color_Off}\n"
fnc_menu
Loading…
Cancel
Save