File descriptors belong to a process: the current process, that is. Immediately when you exit a process, the assignments have no effect. Even a subshell (or any child process) that inherit the file descriptors, have from the fork() call their own copies of the file descriptors (a file descriptor is just a number pointing to an IO resource in linux kernel). It's just like open files - opening a file in one process doesn't make it open for everyone and if you don't close it yourself, linux closes it and cleans up when the process terminates.