Разница между eval и backticks (обратный апостроф)
Может кто-нибудь сказать мне, в чем здесь большая разница и почему последний нет работаешь?
test="ls -l"
Оба теперь работают нормально:
eval $test
echo `$test`
Но в этом случае:
test="ls -l >> test.log"
eval $test
echo `$test`
Последний не будет работать. Это почему? Я знаю, что eval просто выполняет скрипт, в то время как апострофы исполняют его и возвращают результат в виде строки. Что делает невозможным использование>>
или подобный материал внутри команды для выполнения? Может быть, есть ли способ заставить его работать с апострофами, и яя делаю что-то не так?