Gostaria de criar um loop que repita uma transferência ncftp se retornar um erro.
Estou um pouco inseguro de como a variável de código de saída pode ser usada em um loop. Algo assim funcionaria?
until [$? == 0]; do
ncftpput -DD -z -u user -p password remoteserver /remote/dir /local/file
done
Respostas:
Eu encontrei a base para esse loop elegante em outro lugar na falha do servidor. Acontece que não há necessidade de salvar o código de saída, pois você pode testar diretamente no próprio comando;
fonte
Quase. Provavelmente, você está melhor salvando o valor de retorno como uma variável para poder pré-configurá-lo antes do loop. Caso contrário, será afetado pelo comando de última execução.
Você também pode colocar um
sleep
para impedir que ele reaparecer rapidamente.fonte
Um pouco hacky, mas minha solução foi apenas criar uma função bash que é executada automaticamente se sair com falha
fonte
Você pode fazer um loop enquanto seu comando retorna erro:
fonte