Escapando entre aspas duplas nos scripts bash

1

Estou confuso sobre este tópico ao ler o Advanced Bash Scripting Guide. De acordo com o livro,

Bash script, when we quote a string, we set it apart and protect its literal meaning.

e

Escaping is a method of quoting single characters. The escape (\) preceding a character tells the shell to interpret that character literally.

Parece que \ é um caractere "funcional", mas e se ele também for colocado em uma aspa dupla? Será que \ será considerado apenas como literal ou ainda está escapando? Por exemplo,

echo \z  # z
echo "\z"  # \z  seems that the backslash is taken literally
echo \  # \
echo "\"  # \  so why this result is not \ ?
    
por Yingbo Wang 04.09.2017 / 00:39

1 resposta

3

man bash :

Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the exception of $, ', \, [...] The backslash retains its special meaning only when followed by one of the following characters: $, ', ", \, or newline.

    
por 04.09.2017 / 00:43