Infelizmente, o cURL não possui um mecanismo nativo para interpolação de valores. No entanto, você pode usar um pouco de sed
magic para substituir:
sed "s/\${TIME}/$(date +%s%N)/g" req.xml | curl -X POST -H 'Content-Type: text/xml' -d @- server.tld > result.xml
O comando date
exibirá a hora atual no formato especificado. %s
é o número de segundos desde a época do UNIX e %N
é o número de nanossegundos do segundo atual.
No bash, $(...)
em uma string "
-quoted inserirá a saída de um comando em um parâmetro de outro. Isso gerará um comando sed que substitui todas as instâncias de ${TIME}
pela hora atual. O parâmetro curl -d @-
faz com que ele leia os dados POST do stdin. Embora você possa manter a sintaxe de cada expressão, não acho que valha a pena.