curl
não tem idéia de que ele falhou - ele tinha uma entrada bem definida, se comunicava com o servidor e recebia uma resposta 200 OK
. Por causa disso, você não pode confiar no código de saída de curl
(que é o que o &&
faz).
Em vez disso, precisamos usar outra coisa para determinar o sucesso ou o fracasso, como a saída gerada por curl
.
Como observação, geralmente não é uma boa ideia usar ls
em um script. Aqui, ele falhará se um arquivo tiver uma nova linha ou um caractere de espaço. Pode ser improvável, mas é possível. Consulte o link para obter mais detalhes. Como regra geral, só uso ls
em scripts ao exibir os resultados para olhos humanos. Se eu estou processando os resultados de alguma forma, eu uso find . -0 ...