¿Por qué las comillas dobles hacen que la cadena se ejecute como una función?


-1

Una función simple recibe dos argumentos y agrega and , luego imprímelos.

function myprint(){ echo "$1 and $2";}

Funciona.

myprint  xx  yy
xx and yy

Es una cadena, bash lo analiza por separado.

"myprint  xx  yy"
bash: myprint  xx  yy: command not found

¿Por qué las comillas dobles hacen que la cadena se ejecute como una función?

""myprint  xx  yy""
xx and yy

Respuestas:


3

Sus "comillas dobles" no están anidadas. Dos veces se abre y se cierra una doble cita de inmediato.

""myprint  xx  yy""
^^                  this is one pair of quotes with empty content
                 ^^ this is anther pair with empty content
  ^^^^^^^^^^^^^^^   this is not quoted at all

En efecto ""myprint es el comando llamado: la cadena vacía concatenada con "myprint", esto se resuelve en el comando myprint función; y el último argumento es la cadena "yy" concatenada con la cadena vacía.

Así que obtienes sin comillas myprint xx yy. Todo el comando original se comporta como tal.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.