Por supuesto, aquí tienes un artículo que explica las diferencias entre $@, $* y $# en Bash:


Diferencias entre $@, $* y $# en Bash

Al trabajar con scripts de Bash, es común encontrarse con variables especiales como $@, $* y $#, que se utilizan para manipular argumentos de línea de comandos. Aunque pueden parecer similares, tienen diferencias importantes en su comportamiento y uso. En este artículo, exploraremos estas diferencias y cómo se utilizan en la práctica.

$@

La variable $@ representa todos los argumentos pasados al script. Cada argumento se trata como una cadena separada, lo que significa que se mantiene la separación entre comillas. Esto es útil cuando se desea mantener los argumentos como palabras separadas.

Por ejemplo:

#!/bin/bash

for arg in "$@"; do
    echo "$arg"
done

Al ejecutar el script con ./script.sh arg1 "arg 2" arg3, $@ contendrá tres elementos: arg1, arg 2 y arg3.

$*

Similar a $@, la variable $* también representa todos los argumentos pasados al script. Sin embargo, a diferencia de $@, $* trata todos los argumentos como una única cadena, sin mantener la separación entre comillas.

Por ejemplo:

#!/bin/bash

for arg in "$*"; do
    echo "$arg"
done

Al ejecutar el mismo script con ./script.sh arg1 "arg 2" arg3, $* contendrá una única cadena: arg1 arg 2 arg3.

$

La variable $# representa el número total de argumentos pasados al script. Es útil para determinar la cantidad de argumentos que se han pasado.

Por ejemplo:

#!/bin/bash

echo "Número de argumentos: $#"

Al ejecutar el script con ./script.sh arg1 "arg 2" arg3, $# contendrá el valor 3.

Resumen

  • $@: Representa todos los argumentos como palabras separadas, manteniendo la separación entre comillas.
  • $*: Representa todos los argumentos como una única cadena, sin mantener la separación entre comillas.
  • $#: Representa el número total de argumentos pasados al script.

En resumen, $@, $* y $# son variables importantes en Bash que permiten acceder y manipular los argumentos pasados a un script. La elección entre $@ y $* depende de si se desea mantener la separación entre comillas o no, mientras que $# proporciona el número total de argumentos para su procesamiento.

macbook pro
Photo by Pixabay on Pexels.com
error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.