From 06d0b0c950130565599b45658a93688e70a16621 Mon Sep 17 00:00:00 2001 From: "jp.av.dev" Date: Fri, 29 Apr 2022 17:37:58 -0400 Subject: [PATCH] ed: buscalog.sh *mejora* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ed: buscalog.sh mejora Reemplazo de 'sustitución de comando' ciclo for por función, en la carga de 'arrays' de directorios y nombres de logs. Separación del proceso en 3 funciones, mejora legibilidad. ***Admite nombres de rutas que contengan espacios*** --- README.md | 14 ++++++-------- buscalog.sh | 35 +++++++++++++++++++++++------------ 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 22a369b..3f3a393 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Selección de scripts de autoria propia - [Lol laucher y debug](#rito-pls) > **NOTA:** Funciones ejecutadas con ***alias*** -> ej: `alias mi_alias='/ruta/a/scritps/script funcion '` +> - ej: `alias mi_alias='/ruta/a/script funcion '` ---- @@ -21,16 +21,14 @@ ej `custom_log_dirs`: ```txt /ruta/a/directorio /ruta/a/otro/directorio -/ruta/a/otro/directorio/mas +/ruta/a otro/directorio con espacios ``` - -> nombres de directorios sin espacios ej `/ruta/a/dir/deLogs` -> nombres de directorios terminan en `\n` +> - Los nombres de directorios terminan en `\n` Lista los log disponibles en los directorios mencionados. -> extension `.log` -> logs con permiso de lectura +> - archivos con extension `.log` +> - archivos con permiso de lectura `./buscalog.sh listLog` ```txt @@ -92,7 +90,7 @@ UsuarioGit2 user2@git.org keyUser2 UsuarioGit3 user3@git.org keyUser3 UsuarioGit4 user4@git.org keyUser4 ``` -> llaves ssh en `~/.ssh/keys/` +> - llaves ssh en `~/.ssh/keys/` ### Listar usuarios agregados `./gitfun.sh gitUser` diff --git a/buscalog.sh b/buscalog.sh index 6bbefe3..f1b34fb 100755 --- a/buscalog.sh +++ b/buscalog.sh @@ -1,27 +1,38 @@ #!/usr/bin/env bash -declare -a LOG_DIRS -declare -a customLogDirs - LOGBASEDIR='/var/log'; CUSTLOGDIRS="$HOME/.config/custom_log_dirs"; -ConT=0; -while read -a LINEA; do - customLogDirs+=($LINEA) -done < $CUSTLOGDIRS +lsLogDirs(){ + OIFS="$IFS" + IFS=$'\n' + while read -a LINEA; do + customLogDirs+=($LINEA) + done < $CUSTLOGDIRS + \ls -U ${LOGBASEDIR}/*.log 2>/dev/null + for dir in ${customLogDirs[@]}; do + \ls -U ${dir}/*.log 2>/dev/null + done + IFS="$OIFS" +} -while read -a LINEA; do - [[ -r "${LINEA}" ]] && LOG_DIRS[$ConT]="${LINEA}" && ((++ConT)) -done <<< $(\ls -U ${LOGBASEDIR}/*.log 2>/dev/null && - for dir in "${customLogDirs[@]}"; do \ls -U $dir/*.log 2>/dev/null; done; ) +cargaLogDirs(){ + ConT=0 + OIFS="$IFS" + IFS=$'\n' + while read -a LINEA; do + [[ -r "${LINEA}" ]] && LOG_DIRS[$ConT]="${LINEA}" && ((++ConT)) + done <<< $(lsLogDirs) + IFS="$OIFS" +} listLog(){ + cargaLogDirs clear local cont=0 printf '\n \e[1;32mSelección de Logs :\n' printf ' %s\e[0m\n' "-------------------" - for str in ${LOG_DIRS[@]}; do + for str in "${LOG_DIRS[@]}"; do printf ' \e[1;34m%s)\e[0m \e[0;32m%s \e[0m\n' "$cont" "${str}" | \ sed 's/\/var\/log\///g ; s/\.log//g' ((++cont))