Estoy leyendo el tutorial de Shell hoy en http://www.tutorialspoint.com/unix/unix-quoting-mechanisms.htm
En el que menciona:
Si aparece una comilla simple dentro de una cadena que se va a generar, no debe colocar la cadena completa entre comillas simples, sino que debe preceder eso usando una barra diagonal inversa () de la siguiente manera:
echo 'It\'s Shell Programming'
Probé esto en mi servidor centos, no funciona, me >pide que me escriba más.
Me preguntaba, ya que dos comillas simples transforman todos los caracteres especiales en caracteres normales, que incluyen el símbolo de escape \, pero se excluyen ',
¿cómo debo representar una comilla simple 'en una frase entre comillas simples?

echo It\'s Shell Programmingoecho "It's Shell Programming"?echo Wow, I'm going to have lots of $$$$$$ now$también. Algo comoecho Wow, I\'m going to have lots of \$\$\$\$\$\$ nowo soloecho Wow, I\'m going to have lots of '$$$$$$' nowecho 'It'"'"'s Shell Programming'. Simplemente lo divido en 3 cadenas, la primera y la última rodeadas de comillas simples, pero la del medio tiene una comilla simple rodeada de comillas dobles.Respuestas:
El tutorial está mal.
POSIX dice:
Aquí hay algunas alternativas:
Lectura adicional: Citas - Greg's Wiki
fuente
echo 'It''s Shell Programming'- zsh conrc_quotesconjunto de opciones (y el shell rc también) - un par de comillas simples dentro de comillas simples representa una comilla simple.q="'"yqq='"'para hacer este limpiador. Esto luego permiteecho "It${q}s ${qq}Shell Programming${qq}"(se necesitan llaves para las letras finales). POSIX seguro. La capa externa debe estar entre comillas dobles.Puedes usar:
Para cotizar con seguridad una línea de valor por línea.
Dependiendo de Shell, también puede tener la opción de hacer:
Aunque generalmente prefiero hacer:
Un enfoque más manual podría verse así:
... que es, al menos, sin tenedor.
fuente
printf %q\\n "$arbitrary_value", otros son demasiado complicados.En caso de que alguien más aparezca para poner una combinación de comillas simples y dobles en un archivo, esto también funciona:
Sin embargo, todo lo que el shell puede ver como una variable debe ser escapado por una barra invertida:
fuente