The first thing that the shell does it to split the line on unquoted spaces (metacharacters) into tokens. This is different than the word-splitting done after expansions in that the IFS value is not used. The characters used for initial token splitting are fixed as metacharacters. All this will make
Hello (sometimes for a brief moment):
var=Hello echo World # Space
var=Hello;echo World # Semicolon
var=Hello echo World # Tab
var=Hello&echo World # Ampersand
Also, for this initial token splitting, the right side of an assignment is considered quoted.
All this are equivalent:
Note that the only character that must be quoted is the white space. Even if IFS is modified.
Of course, inside double quotes several expansions are allowed:
var=~"/" ; var=~/ tilde expansion (outside quotes)
var="$PWD" ; var=$PWD parameter and variable expansion
var="$(pwd)" ; var=$(pwd) command substitution
var="$((2+3))" ; var=$((2+3)) arithmetic expansion
var="!$" ; var=!$ history substitution
All pairs above are equivalent (the same).
None of the pairs will work the same inside single quotes (or with some back-quotes), example:
var='$PWD' ; var=\$PWD
Also, this are not equivalent:
var="( Hello World )" ; var=( Hello World )
The parenthesis trigger an array assignment
So, all this are equivalent:
taking into account the special conditions given previously.