Por favor, veja BashFAQ / 050 .
This fails because of WordSplitting and because the single quotes inside the variable are literal; not syntactical.
Você deve evitar colocar comandos em variáveis ao criar scripts de shell.
Use uma função para poder reutilizar um comando. Use set -x
para registro. Ou use uma matriz para conter as partes individuais do comando e seus argumentos somente se for necessário.
A propósito, em uma linha você usa $()
para substituição de comando. Este é o caminho correto. Em outra linha você usa backticks que estão obsoletos. Pelo menos seja consistente.