Dois problemas surgem aqui:
-
Você não citou suas variáveis, então o shell está potencialmente atrapalhando os valores. Vou lhe dar uma sugestão alternativa para o seu script, que se baseia na remoção do espaço em branco .
-
Você está processando XML com expressões regulares. Isso funcionará por enquanto, mas esteja ciente de que isso pode acontecer no futuro quando algo inesperado mudar.
O código segue
#!/bin/bash
# ...
# Not even going to attempt to reduce this without seeing your XML
url=$(grep -E -m 1 -o "<ExportCatalogResult>(.*)</ExportCatalogResult>" costa_export.xml| sed -e 's,.*<ExportCatalogResult>\([^<]*\)</ExportCatalogResult>.*,,g')
# Debug
echo "raw: $url" >&2
# Strip leading and trailing whitespace
url="${url#"${url%%[![:space:]]*}"}" # remove leading whitespace
url="${url%"${url##*[![:space:]]}"}" # remove trailing whitespace
# More debug
echo "now: $url" >&2
# Save the URL
echo -n "$url" > url.txt
# Retrieve the URL contents
wget -O price.zip "$url"