O que você quer fazer é basicamente a substituição de strings para processar o conteúdo do arquivo de entrada, não a expansão da variável (embora isso seja executado pelo shell quando você faz referência à variável, mas não é o que faz no conteúdo da entrada). p>
Isso pode ser feito com sed
, e a variável shell pode ser usada, apesar de consultar esta resposta para possível problemas.
#!/bin/sh
test -n "$1" || exit 1
sed 's/\${domain}/'"$1"'/g' input.txt > output_"$1".txt
Ajuste input
e output
de acordo. Observe também que eu uso o parâmetro $1
posicional diretamente, em vez de copiá-lo para a variável.
Se eu puder sugerir uma abordagem melhor seria ter um script que funcione como modelo, e você só forneça variáveis como parâmetros posicionais para a linha de comando do script ou por meio do fornecimento de um arquivo de variáveis. Copiar arquivos e executar acrobacias com a substituição de strings, especialmente se os padrões se tornarem complexos, não é a melhor abordagem.