Tutoriales

¿Cuál es la diferencia entre ${} y $() en Bash?

Sistemas operativos basados ​​en GNU como linux se basa en un intérprete de lenguaje de comandos o llamado golpear Completar la mayoría de sus tareas y objetivos informáticos.

el autor detrás golpear (Esteban Byrne) también es conocido principalmente por sus siglas (Bourne Again Shell). En cuanto a la compatibilidad, golpear y abucheo es una combinación perfecta.Las características útiles son evidentes en C caparazón(csh) y Cohen caparazón(Kersh) también se incluye en este intérprete de lenguaje shell.

En cuanto a la implementación, golpear diseñado para cumplir con IEEE POSIX Especificación (IEEE Std 1003.1) Sección de herramientas y IEEE POSIX Shell.Por lo tanto, como herramienta interactiva y de programación, Bash ofrece mejoras funcionales sobre las existentes. abucheo.

Los usuarios de Linux y otros sistemas operativos basados ​​en GNU no están obligados a depender por completo de golpear es su principal intérprete de lenguaje de comandos, ya que las versiones de shell como csh También preempaquetado en estos sistemas. Debido a sus propiedades de shell únicas, como la portabilidad, Bash solo está configurado para usarse como el shell de Linux predeterminado.

Comparando $() con ${} en Bash

Compara estos dos con golpear ambiente, tendremos que reiterar $() a $(command) y ${} a ${parameter}Entonces podemos tratar de definir estas dos entidades Bash.

Entendiendo $(comando)

$(command) existir golpear Relacionado con la sustitución de comandos.Más específicamente, la sección de comando está en $(command) se ejecuta y su salida se captura e imprime en la salida estándar.

sintaxis detrás $(command) es el nivel del token. Considere ejecutar el siguiente comando, que está diseñado para imprimir la fecha actual en la terminal.

$ echo "Today is $(date). A fine day."
imprimir fecha en linux

La ejecución anterior se puede explicar de la siguiente manera. primero, fecha se ejecuta el comando y su salida se incluye como un argumento para el comando echo.

Aquí, podemos suponer que la sustitución de comandos se realiza en un subshell separado antes de volver a incluirse en el shell principal.

Entendiendo ${parámetro}

${parameter} existir golpear Relacionado con la sustitución de parámetros. De acuerdo con la página del manual de Bash, un parámetro es una entidad de almacenamiento de valor. Las entidades de parámetros se pueden asociar con nombres, números o caracteres especiales.

grandes paréntesis {} Lo que implica que estamos tratando con parámetros posicionales, o usando un parámetro (valor de parámetro) seguido de un carácter no interpretativo no asociado con el nombre del parámetro, p. ${animal}s.

En cuanto a los parámetros posicionales, puede ser representado por uno o más números (excepto el único número 0).Entonces si tenemos un $variable_namesustitución de parámetros ${parameter} Se puede utilizar para recuperar el valor de la variable asociada.

Considere el siguiente comando de declaración de variables:

$ animal=lion

llamemos animal variable intenta pluralizar el valor de la variable:

$ echo $animals   
Declarar variables en comandos
Declarar variables en comandos

no se imprime nada en la salida estándar porque golpear no entiendo las variables $animalsSin embargo, podemos llamar con éxito a nuestro $animals Las variables usan métodos de sustitución de parámetros de las siguientes maneras:

$ echo ${animal}s
variable de llamada en comando
variable de llamada en comando

En algunos casos, puede aparecer un signo de exclamación después de la primera llave de apertura de una implementación de sustitución de parámetros. En este caso surge el concepto de indirección variable.

Los valores de las variables tienen prioridad sobre los valores de los parámetros de la siguiente manera:

$ animal=lion 
$ echo $animal
$ lion=rafiki
$ echo $lion
$ echo ${!animal}
Prioridad de los valores de los parámetros
Prioridad de los valores de los parámetros

Esperemos que este artículo arroje luz sobre la diferencia entre los dos. $() y ${} en bash. Siéntase libre de dejar un comentario o retroalimentación.

LEER  ¿Qué es sudo rm -rf en Linux? ¿Por qué es peligroso?

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba