Me gustaría crear un bucle que repita una transferencia ncftp si devuelve un error.
No estoy seguro de cómo se puede usar la variable de código de salida en un bucle. Algo como esto funcionaría?
until [$? == 0]; do
ncftpput -DD -z -u user -p password remoteserver /remote/dir /local/file
done
Respuestas:
Encontré la base para este elegante bucle en otro lugar en serverfault. Resulta que no es necesario guardar el código de salida, ya que puede probar directamente en el comando en sí;
fuente
Casi. Probablemente sea mejor guardar el valor de retorno como una variable para que pueda preestablecerlo antes del ciclo. De lo contrario, se verá afectado por el comando de última ejecución.
También es posible que desee colocar una honda
sleep
allí para evitar que vuelva a aparecer demasiado rápido.fuente
Un poco hacky pero mi solución fue crear una función bash que se ejecute sola si sale con una falla
fuente
Puede hacer un bucle mientras su comando devuelve un error:
fuente