Różnica między eval a backticks (odwrotny apostrof)

Czy ktoś może mi powiedzieć, jaka jest tutaj duża różnica i dlaczego ta druga nie działa?

test="ls -l"

Obie teraz działają poprawnie:

eval $test
echo `$test`

Ale w tym przypadku:

test="ls -l >> test.log"

eval $test
echo `$test`

Ten ostatni nie zadziała. Dlaczego? Wiem, że eval wykonuje skrypt, podczas gdy apostrofy go wykonują i zwracają wynik jako ciąg. Co sprawia, że ​​korzystanie z niego jest niemożliwe>> lub podobne rzeczy do wykonania w poleceniu? Może jest jakiś sposób, aby działał z apostrofami i robię coś nie tak?

questionAnswers(2)

yourAnswerToTheQuestion