Bij het toewijzen van een variabele blijft het escape teken zo functioneren, shellexpansie is er echter niet.
var=* en var=\* zorgen er daardoor voor dat var gelijk is aan *. var="\*", var="\""*, var='\*' ,var="\"*, var=\\* en var=\\\* zullen alle var gelijk stellen aan \*: de "glob" (*) moet niet beschermd worden, het escape teken wel als je het in de variabele wil.
Het is dan bij het echo commando dat de expansie gebeurt: met var=* zal echo $var geeft het commando echo *, de shell zal vooraleer dit uit te voeren * expanderen tot alle overeenstemmende bestandsnamen. Shell expansie van de * belet je in het echo commando: echo "$var"
Bash is soms moeilijk "to get your head around"