A construção $(stuff) será substituída pelos resultados da execução de stuff em uma subshell. Então:
echo $(echo hello)
se tornará
echo hello
Portanto,
eval "$(ls)"
executará ls , obterá sua saída e usará essa saída como o argumento para eval .