O comando curl
é executado, mas sua saída não é atribuída a num_redirect
. Isso significa que a saída de onda é mostrada, ou seja, "3" (sem uma nova linha). No entanto, uma nova linha é inserida quando echo $num_redirect
é executado, pois a variável está vazia. Isso dá a impressão de que a variável num_redirect
tem o valor "3".
Você deve usar backticks ou $()
para executar um comando e capturar sua saída no stdout.
num_redirect=$(curl -L -s -w %{num_redirects} "http://dx.doi.org/"$doi -o /dev/null)
Além disso, você deve comparar a variável com um inteiro usando [
e ]
. Agora você está, novamente, apenas avaliando o comando.
if [ "$num_redirect" -eq 3 ]
then
...
else
...
fi