Bash: ejecutar comandos en variables
Clase 9 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Aprende a ejecutar comandos dentro de un script y almacenar la salida en variables para reutilizarla. Con Bash y dos formas de sustitución de comandos —backtick y $(...)— podrás imprimir la ubicación actual con pwd o consultar el estado del sistema con uname -a. Además, se muestran atajos en Vim para editar más rápido.
¿Qué es la sustitución de comandos en Bash?
La idea es simple y poderosa: ejecutar un comando y usar su salida como valor dentro del programa. Esto permite encadenar tareas. Por ejemplo, recuperar la ruta con pwd y, desde ahí, crear directorios o archivos.
En Bash hay dos formas equivalentes de hacerlo:
- Con backticks: comando se ejecuta y su salida se asigna a una variable.
- Con $(comando): preferido por legibilidad y anidación.
Aplicarlo en un servidor, como Ubuntu Server, facilita automatizar flujos comunes. Por ejemplo, imprimir la ubicación actual y la información del kernel antes de ejecutar otras acciones.
¿Cómo se implementa con ejemplos prácticos?
El flujo mostrado parte de crear un script, editarlo y asignar salidas de comandos a variables. Luego, se imprimen con echo para comprobar resultados.
#!/bin/bash
# Programa para ejecutar comandos dentro de un programa y almacenarlos en variables
ubicacion_actual=`pwd` # Uso de backticks
info_kernel=$(uname -a) # Uso de $(comando)
echo "La ubicación actual es la siguiente: $ubicacion_actual"
echo "Información del kernel: $info_kernel"
¿Cómo capturar la ubicación actual con pwd?
- Usa backticks para asignar la salida de pwd.
- Asigna a una variable y reutiliza en tu flujo.
ubicacion_actual=`pwd`
¿Cómo obtener información del kernel con uname -a?
- Emplea $(comando) para mayor claridad.
- Muestra la versión y detalles del kernel.
info_kernel=$(uname -a)
¿Cómo imprimir y ejecutar el script?
- Muestra valores con echo para verificar.
- Lista archivos con ls y ejecuta con
./nombre_script.
echo "La ubicación actual es la siguiente: $ubicacion_actual"
echo "Información del kernel: $info_kernel"
ls
./tema_d5.sh
Puntos clave: - Sustitución de comandos: integra salidas en variables para reusar en sentencias posteriores. - pwd: evita escribir rutas completas al trabajar con el directorio actual. - uname -a: expone datos críticos del kernel para diagnósticos rápidos.
¿Qué atajos de edición en Vim aceleran el flujo?
Durante la edición, se enfatizan atajos para borrar y navegar texto de forma eficiente. Estos comandos permiten limpiar y ajustar el contenido antes de probar el script.
- dd: borra una línea.
- Ndd (ej. 18dd): borra N líneas seguidas.
- Control + B: activa Visual Block para seleccionar por bloques.
- D tras seleccionar: elimina la selección.
- U: deshacer cambios.
- Insertar: entra a modo inserción para escribir.
- $: ir al final de la línea.
- Escape, Shift + W, Q: guardar y salir.
Asimismo, el flujo integra tareas de consola: - cp para copiar archivos y reutilizar estructura. - ls para verificar permisos y presencia del script. - ./archivo para ejecutar el programa actual.
La clave está en combinar sustitución de comandos, variables y edición ágil en Vim para lograr scripts claros, reutilizables y listos para automatizar tareas.
¿Tienes dudas sobre backticks o $(...)? Comparte un comentario con tu caso y lo revisamos juntos.