Only perform backquote substitution when needed

Spawning shells is an expensive operation.
In a lot of cases, there is no need for any substitution.
Besides, this does not work on Windows.
update changelog
2.1.23