Esta é uma atribuição de variável. Nesse caso, a
é sua variável e você está configurando-a para um valor nulo; ''
será avaliado em nada.
Como ilkkachu aponta:
Usar a=''
não é efetivamente diferente de usar a=""
ou a=
Como Cas aponta:
Setting the variable to a null value (or any initial/default value) also ensures you're not going to use whatever value it might have if it happens to be an environment variable (e.g. exported in the parent shell). This can be problem if, e.g., your script assumes that the variable is empty/undefined unless the script itself defines it, and takes different actions based on that.
script.sh
#!/bin/bash
if [[ $1 == null ]]; then
a=
elif [[ $1 == unset ]]; then
unset a
fi
echo "${a:-test}"
Em ação:
$ export a=value
$ ./script.sh null
test
$ ./script.sh unset
test
$ ./script.sh
value
$ echo $a
value
Em muitos casos, definir a variável como um valor nulo é o mesmo que desabilitar a variável: unset a
No entanto, existem ressalvas