Cómo utilizar las expansiones $() y ${} en un script de Shell

Cómo utilizar las expansiones $() y ${} en un script de Shell

Los scripts de shell son una forma poderosa de automatizar tareas repetitivas en un sistema operativo basado en Unix. A medida que los scripts se vuelven más complejos, es importante conocer las diferentes formas en que se pueden expandir y manipular las variables. En este artículo, aprenderemos cómo utilizar dos tipos de expansiones: $() y ${}.

📋 Aquí podrás encontrar✍
  1. ¿Qué son las expansiones $() y ${}?
  2. Usos comunes de las expansiones $() y ${}
    1. 1. Almacenar la salida de un comando en una variable
    2. 2. Manipular el valor de una variable
    3. 3. Combinar variables y texto
  3. Ejemplos de código
  4. Conclusión
  5. Preguntas frecuentes
    1. ¿Puedo utilizar las expansiones $() y ${} en cualquier shell?
    2. ¿Puedo utilizar las expansiones $() y ${} en scripts de otros lenguajes de programación?
    3. ¿Puedo combinar varias expansiones en una sola expresión?

¿Qué son las expansiones $() y ${}?

En los scripts de shell, las variables se pueden definir y asignar valores utilizando el signo de igual (=). Una vez definida la variable, se puede acceder a su valor utilizando el signo de dólar ($). Las expansiones $() y ${} permiten ejecutar comandos dentro de los paréntesis y utilizar su salida como valor de una variable.

La expansión $() se utiliza para sustituir el resultado de un comando. Por ejemplo:

echo "El número de archivos en el directorio actual es $(ls | wc -l)"

En este caso, las expresiones $() y $(ls | wc -l) se expanden para mostrar el número de archivos en el directorio actual.

La expansión ${} se utiliza para manipular el valor de una variable. Por ejemplo:

nombre="Juan"
echo "Hola, ${nombre^^}!"

En este caso, la expresión ${nombre^^} se expande para mostrar el valor de la variable "nombre" en mayúsculas. Además, también puede usarse la expresión ${nombre,,} para mostrar el valor en minúsculas, ${nombre^^[primeera]} para capitalizar la primera letra y ${nombre^^[actodos]} para capitalizar todas las letras.

Usos comunes de las expansiones $() y ${}

Las expansiones $() y ${} se utilizan comúnmente en los scripts de shell para:

1. Almacenar la salida de un comando en una variable

fecha=$(date +%Y-%m-%d)
echo "Hoy es ${fecha}"

En este caso, la expresión $(date +%Y-%m-%d) se expande para mostrar la fecha actual en el formato aaaa-mm-dd y se almacena en la variable "fecha".

2. Manipular el valor de una variable

archivo="informe.txt"
mv ${archivo} ${archivo%.*}_backup.txt

En este caso, la expresión ${archivo%.*}_backup.txt se expande para cambiar el nombre del archivo "informe.txt" a "informe_backup.txt". La expresión ${archivo%.*} se utiliza para eliminar la extensión del archivo.

3. Combinar variables y texto

nombre="Juan"
apellido="Pérez"
echo "El nombre completo es ${nombre} ${apellido}"

En este caso, la expresión ${nombre} ${apellido} se expande para mostrar el nombre completo.

Ejemplos de código

A continuación, se presentan algunos ejemplos de código para ilustrar el uso de las expansiones $() y ${} en un script de shell:

#!/bin/bash

fecha=$(date +%Y-%m-%d)
echo "Hoy es ${fecha}"

archivo="informe.txt"
mv ${archivo} ${archivo%.*}_backup.txt

nombre="Juan"
apellido="Pérez"
echo "El nombre completo es ${nombre} ${apellido}"

Conclusión

Las expansiones $() y ${} son poderosas herramientas que permiten expandir y manipular las variables en un script de shell. Al conocer los diferentes usos de estas expansiones, podemos escribir scripts más eficientes y flexibles.

Preguntas frecuentes

¿Puedo utilizar las expansiones $() y ${} en cualquier shell?

Sí, las expansiones $() y ${} funcionan en cualquier shell de Unix.

¿Puedo utilizar las expansiones $() y ${} en scripts de otros lenguajes de programación?

No, las expansiones $() y ${} son características específicas de los scripts de shell.

¿Puedo combinar varias expansiones en una sola expresión?

Sí, puedes combinar varias expansiones en una sola expresión. Por ejemplo:

nombre="juan"
echo "El nombre completo en mayúsculas es ${nombre^^} y tiene ${#nombre} caracteres."

En este caso, se utilizan las expansiones ${nombre^^} y ${#nombre} para mostrar el nombre en mayúsculas y el número de caracteres, respectivamente.

Deja una respuesta

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

Subir