En Linux Shell, muchos caracteres especiales tienen sus propios significados especiales. A veces se usan para realizar una acción, mientras que otras veces solo se usan como un personaje, por lo que el mecanismo de comillas realiza esta tarea y nos hace usarlos de la forma que queramos.
Metacaracteres: estos son los caracteres especiales que primero interpreta el shell antes de pasar los mismos al comando. También se conocen como comodines de shell.
- $ Sustitución de Variable o ampliar el valor de Variable.
- > utilizado para la redirección de salida.
- >> utilizado para la redirección de salida para agregar.
- < Redirección de entrada.
- << se utiliza para la redirección de entrada y también se conoce como documento aquí.
- * Coincide con cualquier número de caracteres, comodín de sustitución de cero o más caracteres
- ? Coincide con un carácter, comodín de sustitución para 1 carácter
- [] Rango de coincidencia de caracteres, comodín de sustitución para cualquier carácter entre paréntesis
- `cmd` Reemplace cmd con el comando a ejecutar y ejecutará eso, comodín de sustitución para la ejecución del comando
- $(cmd) Reemplace cmd con el comando a ejecutar y lo ejecutará, comodín de sustitución para la ejecución del comando
- | Pipe es una redirección para enviar la salida de un comando/programa/proceso a otro comando/programa/proceso para su posterior procesamiento.
- ; El separador de comandos se usa para ejecutar 2 o más comandos con una declaración.
- || O ejecución condicional de los comandos.
- && Y ejecución condicional de los comandos.
- () Agrupa el comando en un flujo de salida.
- & ejecuta el comando en segundo plano y mostrará el Pid asignado.
- # para comentar algo.
- $ Para expandir el valor de una variable.
- \ utilizado para escapar de la interpretación de un personaje o para evitar eso.
El carácter de escape o barra invertida
Una barra diagonal inversa (‘\’) es el carácter de escape bash. Cualquier carácter inmediatamente después de la barra invertida pierde su significado especial y cualquier letra que sigue a la barra invertida gana su significado especial. Ingrese los siguientes comandos en la terminal.
echo "Quotation" echo \"Quotation\"
Como se puede ver con el ejemplo de que el doble no se podía imprimir sin barra invertida y con barra invertida ya que perdieron su significado especial, por lo que se imprimieron.
Los personajes escapados de la barra invertida
\a alerta (campana)
\b retroceso
\e un carácter de escape
\f avance de página
\n nueva línea
\r retorno de carro
\t tabulador horizontal
\v tabulador vertical
\\ barra invertida
\’ comilla simple
\nnn el carácter de ocho bits cuyo valor es el valor octal nnn (de uno a tres dígitos)
\xHH el carácter de ocho bits cuyo valor es el valor hexadecimal HH (uno o dos dígitos hexadecimales)
\cx un carácter de control-x
Las comillas simples
Las comillas simples() se utilizan para conservar el valor literal de cada carácter dentro de las comillas. Una comilla simple no puede aparecer entre comillas simples, incluso cuando va precedida de una barra invertida. Todos los caracteres especiales dentro de las comillas simples pierden sus significados especiales.
Algunas strings tienen muchos caracteres especiales, por lo que es difícil usar una barra invertida antes de cada carácter especial. Por lo tanto, si colocamos la misma string entre comillas simples, la mayoría de los caracteres especiales perderán sus significados especiales. Ingrese los siguientes comandos en la terminal.
echo \<Welcome\>\<to\>\<geeksforgeeks\> echo '<Welcome><to><geeksforgeeks>'
Se puede ver en el ejemplo que tuvimos que usar una gran cantidad de barra invertida en la primera declaración, lo que lo hizo complejo. Mientras que con comillas simples, la salida fue la misma sin usar la barra invertida
Las comillas dobles
Las comillas dobles («») conservan el valor literal de todos los caracteres dentro de las comillas, con la excepción de ‘$’, ‘`’, ‘\’, y cuando la expansión del historial está habilitada, ‘!’. La barra invertida conserva su significado especial solo cuando va seguida de uno de los siguientes caracteres: ‘$’, ‘`’, ‘”’, ‘\’ o salto de línea. Ingrese los siguientes comandos en la terminal.
name=geeksforgeeks echo '$name' echo "$name"
Se puede observar que en el caso de comillas simples no se imprimía el valor de la variable mientras que en el caso de comillas dobles se imprimía el valor de la variable.
Las cotizaciones traseras
Las comillas inversas («) se utilizan para ejecutar un comando. Cualquier cosa encerrada entre ellos se tratará como un comando y se ejecutará. Abra la terminal y ejecute los siguientes comandos.
hostname=`hostname` echo $hostname
Puede verse en el ejemplo que se ejecuta el comando hostname y el nombre se almacena en la variable.