The problem is that the characters 0x08, 0x09, 0x0a, 0x0b, 0x0c ... are considered whitespace characters and lack the value of a variable. If you try to set 0x01 , it will be visible in the shell.
PS It seems that the variable is set to \x09 , but does not affect it: Indeed:
prev_sh_$ ./so2 $ export IFS=" \n" $ echo $EGG | hexdump 0000000 0a09 0000002
0x0a ( \n ) is added by the shell to print the value on the next line.
source share