eval on a command, does
eval apply the shell twice to the redirection part of the command?
Suppose the filename in the redirection contains a whitespace, if
eval applies all the steps of parsing, shell expansions and word splitting and other steps to it more than once, the filename will be split into two words during the word splitting step in the second round.
Does the following example imply that
eval doesn't apply the shell twice to the redirection part of the following command, so the filename is not split into two words?
$ filename="my file" $ eval "cat" < "$filename" hi