O {
é anterior a $
. Deve ser ${version}
:)
A string de solicitação no exemplo abaixo interpola a variável de versão, mas mantém as chaves e eu não entendo o porquê.
#!/bin/sh
version=2989
request="http://example.com/?version={$version}&therest"
echo "$request"
Resultado:
$ ~/script.sh
http://example.com/?version={2989}&therest
Ambiente:
$ echo $0
-zsh
Compare:
$ version=1.2; echo "http://example.com/?version={$version}&therest"
http://example.com/?version={1.2}&therest
$ version=1.2; echo "http://example.com/?version=${version}&therest"
http://example.com/?version=1.2&therest
Por dentro, chaves são consideradas apenas caracteres normais, a menos que sejam parte de alguma construção como ${variableName}
.
Tags bash shell-script