Can anyone tell me what the big difference here is and why the latter doesn't work?
test="ls -l"
Both now work fine:
eval $test
echo `$test`
But in this case:
test="ls -l >> test.log"
eval $test
echo `$test`
The latter will not work. Why is that? I know that eval is just executing a script while the apostrophes are executing it and return the result as a string. What makes it not possible to use >>
or simmilar stuff inside the command to execute? Maybe is there a way to make it work with apostrophes and I'm doing something wrong?