43 votos

Diferencias entre comillas dobles " ", singlequotes '' y comillas simples inclinadas en la línea de comandos?

A menudo veo tutoriales en la web o entradas en este sitio que hacen un uso intensivo de los siguientes caracteres en la línea de comandos. A menudo parece que son utilizados para fines similares. ¿Cuáles son las diferencias entre ellos cuando se utiliza en la línea de comandos o para la programación de la shell? Para qué hago uso que de ellos?

" " double quotes

' ' single quotes

` ` backticks

43voto

Seun Osewa Puntos 3243

Por ejemplo, considere la posibilidad de que la variable foo contiene uname.

  • echo "$foo" salidas uname, la sustitución de variables en el texto.
    (Para un literal $ personaje en " citas, uso \$; para un literal ", uso \".)
  • echo '$foo' salidas $foo, la cadena exacta.
    (Aun ' no puede ser escapado como \' dentro ' comillas. Pero usted puede usar 'foo'\''bar'.)
  • echo `$foo` salidas Linux, ejecutar el contenido de la variable y echo salidas.

11voto

Stewart Puntos 1385

Esto se explica muy bien en la sección correspondiente del manual de bash. Brevemente, nada dentro de las comillas simples se interpreta literalmente. Así, por ejemplo:

$ echo '$SHELL'
$SHELL
$ echo '{1..3}'
{1..3}

Compare eso con los no cotizados versiones:

$ echo $SHELL
/bin/bash
$ echo {1..3}
1 2 3

Comillas dobles permiten la expansión de la variable (también de la historia de la expansión y algunas otras cosas). Básicamente, el uso de ellos cuando se trata de algo que quieres ver ampliada. Por ejemplo:

$ echo "$SHELL"
/bin/bash
$ echo "!!"
echo "echo "$SHELL""
echo /bin/bash

En otras palabras, las comillas simples proteger completamente a una cadena a partir de la cáscara, mientras que las comillas dobles proteger algunas cosas (espacios, por ejemplo), pero permite a las variables y los caracteres especiales se expandió/interpretado correctamente.

5voto

Thomas Puntos 715

Las comillas simples (") se utiliza para preservar el valor literal de cada uno de los caracteres encerrada dentro de las comillas

El uso de comillas dobles el valor literal de todos los personajes que se adjunta en conserva, excepto por el signo de dólar, las comillas simples inclinadas (hacia atrás comillas simples, `) y la barra diagonal inversa.

Cuando se encuentre en el interior de back-las garrapatas, el shell interpreta algo para decir "la salida de los comandos dentro de la parte posterior-las garrapatas". Esto se conoce como la sustitución de comandos, como la salida de los comandos dentro de la parte posterior-las garrapatas es sustituido por el propio comando

referencias:

http://www.linuxtopia.org/online_books/bash_guide_for_beginners/sect_03_03.html

http://www.linux-tutorial.info/modules.php?name=MContent&pageid=20

3voto

Kizz Puntos 128
echo '$HOME' is "$HOME"

Las comillas simples de prevenir la expansión de la variable, mientras que las comillas dobles permiten.

2voto

Bob Puntos 790

Estoy hablando en general, pero:

"" - Se utiliza para procesar la información dentro de ellos antes de la salida. Como en PHP cuando usted", " una variable Por ejemplo: echo "Hola mi nombre es $nombre" (Va de salida: Hola mi nombre es NESS)

'' - Se usa para mostrar la salida de la señal tal como es. Por ejemplo en PHP usando el ejemplo de arriba es la salida de la eco como es (la salida: Hola mi nombre es $nombre)

De modo que la diferencia entre el Doble y el Único es que las Comillas Dobles proceso de la variable y mostrar el valor, mientras que solo qoutes mostrar el nombre de la variable sin procesar.

` ` - Solía citar a los comandos que más tarde se asignará a otra variable.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: