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
.