Не вижу смысла обходиться без eval
Это в вас, вероятно, перлово-PHP'шные страхи играют.
В шелле eval это вполне легитимный, а зачастую и единственный, способ добиться конкретно нужного результата.
Например, eval echo "~$username/" для получения домашнего каталога пользователя по его имени.
А посимвольное чтение - так cut и sed тоже будут читать посимвольно.
И один лишний редирект в любом случае не ускорит работы скрипта.