Nella sezione 3.1.2.3 intitolata Double Quotes, il manuale di Bash dice:
Racchiudere i caratteri tra virgolette doppie ('"') conserva il valore letterale di tutti i caratteri tra virgolette, ad eccezione di '$', '`', '\' e, quando l'espansione della cronologia è abilitata, '!'.
Al momento mi occupo dell'unica citazione ( ').
È un significato speciale, descritto nella sezione precedente, la sezione 3.1.2.2 è:
Racchiudere i caratteri tra virgolette singole (
') conserva il valore letterale di ciascun carattere tra virgolette. Tra virgolette singole non può verificarsi una virgoletta, anche se preceduta da una barra rovesciata.
Combinando le due esposizioni,
echo "'$a'"
dove la variabile anon è definita (quindi $a= stringa nulla), dovrebbe essere stampata $asullo schermo, poiché '', avendo il suo significato speciale all'interno, sarebbe protetta $dall'interpretazione speciale. Invece, stampa ''. Perchè così?
’, ‘\’, and, when history expansion is enabled, ‘!’." in the manual. But now reading it again I realized the second character is not single quote, ("'") but tilde (""). I' Sono grato per la tua rapida risposta, grazie!