authors contain names like with spaces and i guess dots
Várias coisas acontecendo:
Primeiro, a maneira como você está fazendo o loop for
simplesmente não funciona. Tente isto:
for i in 'cat authors'
do
echo "Author = \"$i\""
done
Veja o que está acontecendo? Cada espaço em branco separa um valor para $i
. Se você tiver primeiro e último nomes, estará obtendo uma linha com apenas um primeiro nome e uma linha com apenas um sobrenome.
Agora tente isto:
cat authors | while read i
do
echo "Author = \"$i\""
done
Um pouco melhor? Agora, $i
é toda sua linha.
(Sim, eu sei sobre o "gato inútil", mas veja onde estou indo aqui!)
Em segundo lugar, você pode ter que converter esses espaços e pontos em caracteres de URL válidos. Os espaços devem ser convertidos em %20
. Vamos dar uma abordagem diferente:
sed 's/ /%20/g' authors | while read test
do
echo "curl *line here* www.test.com/authors?string=$i&proc=39"
done
(Agora, você vê porque eu tive o cat
.)
Isso deve imprimir o seu comando curl. O que estou fazendo é pegar o arquivo authors
e converter os espaços para a string %20
. Agora, posso me livrar das aspas ao redor da string que também estão causando problemas.
Assim, podemos agora nos livrar do eco e executar o comando CURL real:
sed 's/ /%20/g' authors | while read test
do
curl *line here* www.test.com/authors?string=$i&proc=39
done
Agora, o que o *line here*
representa? Essa é a sua lista de opções? Ah, e você tinha autores em vez de autores em seu programa. Você errou aqui, ou é assim que o seu programa supostamente é?