2- Ejecución de Comandos a Nivel de Sistema – Guardar Output en Variables
#BashScripting #Linux #Programación #DesarrolloWeb #Automatización #Tecnología #AprenderBash #EvoluciónDeScripts #AutomatizaciónDeTareas #MejoresPrácticasBash #DocumentaciónTécnica #ScriptsDeBash #ComandosLinux #EducaciónTecnológica #CompartirConocimientos #TutorialesDeBash
A continuación observaremos una evolución progresiva en el uso de comandos y variables en un script de Bash. Aquí está la explicación y desarrollo de cada etapa:
1. Primer fragmento:
variable=$(ls)
echo $variable
-
Descripción:
- Se usa
ls
para listar el contenido del directorio actual. - El resultado de
ls
se almacena en la variablevariable
. - Con
echo $variable
, se imprime el contenido de la variable.
- Se usa
-
Comentarios:
- Este fragmento es básico y funcional, pero no tiene un propósito más allá de demostrar el uso de una variable para almacenar la salida de un comando.
2. Segundo fragmento:
#!/bin/bash
archivos=$(ls)
echo 'vamos a listar todos los archivos del escritorio'
sleep 2
echo $archivos
-
Descripción:
- Añade un encabezado
#!/bin/bash
, necesario para ejecutar el script en Bash. - Se declara la variable
archivos
para almacenar el resultado dels
. - Un mensaje explicativo se muestra antes de listar los archivos.
- El comando
sleep 2
introduce una pausa de 2 segundos antes de mostrar el contenido de la variablearchivos
.
- Añade un encabezado
-
Comentarios:
- Este script mejora la claridad al incluir una descripción del propósito antes de listar los archivos.
- Sin embargo, el script sigue limitado al uso del comando
ls
sin especificar un contexto más detallado.
3. Tercer fragmento:
#!/bin/bash
archivos=$(ls)
ruta=$(pwd)
echo "vamos a listar todos los archivos de: $ruta"
sleep 2
echo $archivos
-
Descripción:
- Introduce una nueva variable
ruta
, que almacena la ruta actual obtenida conpwd
(print working directory). - Un mensaje más descriptivo incluye la ruta actual para proporcionar contexto.
- Después de una pausa de 2 segundos, se listan los archivos.
- Introduce una nueva variable
-
Comentarios:
- Este script es más completo y proporciona información útil, como la ruta actual.
- Se orienta hacia la contextualización del contenido listado, pero todavía no filtra archivos específicos.
4. Cuarto fragmento:
#!/bin/bash
archivos=$(ls)
ruta=$(pwd)
scripts=$(ls | grep *.sh)
echo "vamos a listar todos los archivos con extension .sh de la ruta: $ruta"
sleep 2
echo $scripts
-
Descripción:
- Añade una variable
scripts
para almacenar archivos con extensión.sh
en el directorio actual. - Usa
ls | grep *.sh
para filtrar solo archivos con esa extensión. - El mensaje ahora indica explícitamente que se listarán solo los archivos
.sh
. - Después de la pausa, se imprimen los archivos filtrados.
- Añade una variable
-
Comentarios:
- Este script comienza a ser más útil para casos específicos, como trabajar con scripts en Bash.
- Sin embargo, la combinación
ls | grep
puede fallar en ciertos casos, como nombres de archivos con caracteres especiales o extensiones en mayúsculas.
5. Quinto fragmento:
#!/bin/bash
archivos=$(ls)
ruta=$(pwd)
scripts=$(ls *.sh)
echo "vamos a listar todos los archivos con extension .sh de la ruta: $ruta"
sleep 2
echo $scripts
-
Descripción:
- Optimiza la obtención de archivos
.sh
utilizando directamentels *.sh
, lo que es más eficiente y legible. - La estructura general del script permanece igual, pero esta versión es menos propensa a errores que la anterior.
- Optimiza la obtención de archivos
-
Comentarios:
- Este es el más eficiente de los ejemplos. Utiliza buenas prácticas al trabajar con Bash y tiene un propósito claro: listar archivos
.sh
en el directorio actual.
- Este es el más eficiente de los ejemplos. Utiliza buenas prácticas al trabajar con Bash y tiene un propósito claro: listar archivos
Evolución resumida:
- Básico: Guardar y mostrar el resultado de
ls
en una variable. - Claridad: Introducir mensajes para explicar lo que hace el script.
- Contexto: Mostrar la ruta actual junto con los archivos listados.
- Especificidad: Filtrar archivos
.sh
usandogrep
. - Eficiencia: Filtrar archivos
.sh
directamente conls *.sh
.
Esta progresión muestra una evolución hacia scripts más útiles, claros y eficientes en la automatización de tareas con Bash.
10- Creamos un Script que Automatice el Tratamiento de la Información 11- Creamos un Script para Automatizar Búsquedas en el Sistema