Depois que a variável é expandida, a divisão de palavras ocorre e ela é dividida em palavra (s) vazia (s). A divisão é feita usando cada caractere da variável IFS
como delimitador e, como $IFS
se expande apenas para caracteres no IFS
, ela é dividida em palavra (s) vazia (s).
Então, por exemplo:
IFS=xxx;
printf %q $IFS
''''''[root@localhost ~]#
E se você aspas duplas, você está dizendo bash para tratar tudo dentro das citações como uma palavra:
printf %q "$IFS"
xxx[root@localhost ~]#