Bash: ejecutar comandos en variables

Clase 9 de 43Curso de Programación en Bash Shell

Resumen

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.