Construye paso a paso tu programa usando Shell Scripting – Parte 3

En anteriores entradas de esta serie de publicaciones recordamos sobre como implementar un:

Shell Scripting

Y en otras anteriores, como implementar un Shebang y un BSM (Bash Strict Mode / Modo Bash Estricto).

Mejores practicas para crear un Script de Shell en GNU/Linux – Parte 1

Mejores practicas para crear un Script de Shell en GNU/Linux – Parte 2

A continuación un ejemplo de un Modulo de doble ejecución o ejecuciones fallidas, tomando como ejemplo uno de mis programas (aplicaciones) hechos en un Script de Shell llamado Linux Post Install – Script Bicentenario 8.0:

Este debería ser el modulo (sección) que valide que efectivamente el script no se esta ejecutando actualmente y por ende evite que se ejecute 2 veces, o en su defecto que la anterior vez que se ejecuto termino satisfactoriamente. Yo personalmente agrego las siguientes lineas para crear dicho módulo:


###############################################################################
# INICIO DEL MODULO DE DETECCIÓN DE DOBLE EJECUCIÓN ó EJECUCIONES FALLIDAS
###############################################################################

if [[ -f  $UBICACION/$FILE_LOCK ]]; then

   setterm -background red
   echo "El Script no podrá ejecutarse!"
   echo "Debido a que el Archivo de Bloqueo de doble ejecución lo impide."
   sleep 5 ; exit 0

 else

  touch $UBICACION/$FILE_LOCK

fi

###############################################################################
# FINAL DEL MODULO DE DETECCIÓN DE DOBLE EJECUCIÓN ó EJECUCIONES FALLIDAS
###############################################################################

===============

Recomendación:

EL EDITOR VI

Intuyo que muchos por facilidad de uso, a la hora de editar sus script vía terminal deben usar el editor nano el cual no solo es muy sencillo de manipular sino que cuenta con las opciones predeterminadas más comunes para realizar los procesos de edición necesarios en un archivo de texto plano, como lo son los Script de Shell, sin embargo, mi mejor recomendación en este caso es que vayan aprendiendo y usen el Editor vi, el cual no solamente es mucho más avanzado, aunque completo, sino que una vez dominado les proporcionará los métodos necesarios para realizar cambios u operaciones sobre archivos de una manera más eficaz y eficiente.

En otras palabras, Vi ó Vim es un editor de archivos muy útil, que proporciona una gran flexibilidad al momento de editar scripts, modificar archivos de texto, entre muchos otros tipos de archivos, pero sobretodo, a la hora de programar. En mi criterio, es uno de los mejores editores que existe, sin embargo, como es usual los usuarios normalmente de nano al empezar a usarlo y ver una metodología distinta de uso, le suele pasar que radicalmente que «O les encanta ó lo odian de inmediato». Yo opino que vale la pena aprender ha usarlo!

Ciertamente, a primera entrada puede parecer un editor de texto poco amistoso y con una curva de aprendizaje muy difícil, pero que una vez superada, haciendo uso de sus funciones básicas, la productividad se incrementa de una manera muy notable.

También es cierto que, el Editor vi tiene o funciona con Atajos difíciles y carece de menús o botones. Todo se hace a través de comandos y atajos que son secuencias de letras y signos. Y esto resulta muy frustrante para muchos usuarios que olvidan o no recuerdan con facilidad, sin embargo, en espacio en disco ocupa muy poco y se encuentra presente en básicamente casi todos los Linux o Unix disponible. Y por ser un programa que se ejecuta en entorno de texto es útil para accesos remotos y edición vía terminal. Así pues, vamos a aprovechar esta corta entrada para darle un breve repaso a su uso básico desde cero, para perder ese miedo y comprobar lo útil que es aprender a usarlo.

Al invocar el Editor vi aparece en la pantalla el modo de edición. En este modo aparece la posición del cursor en forma resaltada, y las líneas en blanco señaladas con el carácter ~ y en la parte inferior de la pantalla aparece la línea de estado, que muestra el nombre del fichero y el número de caracteres que contiene. Si se invoca el Editor vi pasándole como parámetro la ruta y el nombre de un fichero en el prompt, aparecerá su contenido. Cuando se ejecuta este editor con el nombre de un fichero que no existe, el mismo se crea automáticamente.

El Editor vi tiene dos modos de operación:

  • El Modo Edición: Para añadir texto al fichero.
  • El Modo Comando: Para introducir órdenes que realizan funciones específicas.

Cuando se procede ha editar un archivo de texto con el Editor vi, los cambios no se hacen directamente sobre el mismo. Sino que en realidad, se aplican a una copia de él que el Editor vi crea en un espacio de memoria temporal llamado buffer. El archivo real se modifica sólo cuando se graban los contenidos del buffer. Esto tiene sus ventajas y desventajas. Por un lado, significa que se puede salir de la edición de un fichero y descartar todos los cambios hechos durante una sesión, dejando la copia de disco intacta. Por otro lado, se podría perder el contenido no grabado del buffer de trabajo si el sistema cae. Lo más aconsejable es grabar el trabajo frecuentemente, especialmente cuando se hacen cambios importantes. Para grabar el fichero que se está editando sin salir del Editor vi, basta pulsar en modo comando la orden :w

Para finalizar la ejecución del Editor vi se pueden utilizar diferentes métodos, siempre en modo comando:

:q      –>   Cerrar el editor cuando no se han hecho cambios en el archivo.
:q!    –>    Cerrar el editor descartando los cambios en el archivo.
:wq   –>   Cerrar el editor guardando los cambios en el archivo.

IMPORTANTE: Se debe evitar editar un mismo archivo con varias sesiones del Editor vi abiertas al mismo tiempo, pues no abría manera de estar seguro de cual es la copia final que realmente será grabada en disco.

En el Modo Edición: Cuando se arranca el Editor vi, siempre se inicia en el modo comando, por lo que antes de poder agregar, modificar o eliminar texto dentro del archivo se debe teclear uno de los comandos de entrada del Editor vi, tales como “i” (insert), para insertar texto en la posición actual del cursor, o “a” (append) para insertar texto después de la posición actual del cursor. Para regresar al modo comando, basta con presionar la tecla “Esc”. Si en un momento X no se sabe en qué modo se está, simplemente pulsando la tecla “Esc” se asegura uno de que está en modo comando, y se podrá volver ha continuar con el trabajo.

En el Modo Comando: Cuando se abre un archivo con el Editor vi, se se abre inmediatamente en el modo comando. Y en este modo se pueden ejecutar acciones (comandos) que llevan a cabo un amplio rango de funciones. Muchos de estos comandos constan de una o dos letras y un número opcional relacionado con distintas funciones. Muchos comandos no requieren pulsar la tecla Return para que se ejecuten, pero todas las órdenes que empiezan por dos puntos (:) requieren pulsar la tecla Return para que se ejecuten.

PRINCIPALES COMANDOS DEL EDITOR VI

Los principales comandos del Editor vi, según su utilidad durante la edición de un documento son:

01.- Moverse dentro del archivo
02.- Agregar texto
03.- Modificar texto
04.- Deshacer modificaciones
05.- Eliminar texto
06.- Mover y/o copiar texto
07.- Ejecutar comandos en modo EX
08.- Búsqueda y reemplazo
09.- Volcado de contenido de un archivo en otro
10.- Edición de simultanea de archivos

IMPORTANTE: Los comandos del Editor vi pueden ir precedidos de un contador que indica cuantas veces se debe repetir la operación. Por ejemplo 3dd borra 3 líneas, 2dw borra 2 palabras, y 4x borra 4 caracteres. También se pueden usar contadores para los comandos de moverse por la pantalla, por ejemplo 3w o 2Ctrl-F Pulsando un “.” se repite la última operación realizada. Por ejemplo, si se borra una línea y la siguiente operación es borrar una linea, basta con pulsar “.”.

NOTA: Muchos de los comandos del Editor vi son case-sensitive, es decir, la misma orden tecleada en mayúsculas o minúsculas puede tener efectos totalmente distintos.

En fin, para mayor información puede buscar en Internet (Google o Youtube) información relativa al Editor vi, la cual es amplia y abundante en literatura y soporte.

Sin embargo, les dejo esta HOJA DE TRUCOS (CHEAT SHEET) que les será muy útil para iniciarse en el Editor vi

seleccic3b3n_002

seleccic3b3n_001

Más adelante, en futuras entradas continuaremos viendo ejemplo de módulos (secciones) que realicen funciones tales como:

  • MODULO DE OPTIMIZACIÓN
  • MODULO DE AUTORIZACIÓN DE USUARIO CON CONTRASEÑA
  • MODULO DE DETECCIÓN DE ARQUITECTURA DEL SISTEMA OPERATIVO
  • MODULO DE CONFIGURACIÓN DEL LENGUAJE DE CODIFICACIÓN
  • MODULO DE CONFIGURACIÓN DE PROXY PARA EL AMBIENTE DE EJECUCIÓN

Entre muchos otros!

Y como siempre, les recomiendo ir aprendiendo de forma autodidacta sobre los comandos: gksu, dialog, gxmessage, zenity, espeak, play, entre muchos otros más para crear interfaces gráficas por Terminal o para el Escritorio del Usuario, con alertas sonicas o multimedias, e ir adelantando conocimientos que usarán más adelante.

Recuerden que estas y cualquier otras recomendaciones sobre algún modulo, función, variable, comando u acción en general puede llevarse a cabo de muchas maneras, y lo aquí mostrado no es más que una sencilla manera, de las muchas maneras posibles y probables en la que dicha acción puede o podría ser llevada a cabo!

Solo para finalizar les dejo, un Screencast realizado por mí, para demostrarles de que serian capaces ustedes mismo, luego de finalizado este Curso online de Shell Scripting en DesdeLinux:

ScreenCast de Testeo del LPI-SB8

(LINUX POST INSTALL – SCRIPT BICENTENARIO 8.0.0) – Parte 2


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.