DEV Community

How to run a command in your shell until it succeed

Mayeu on August 11, 2018

I am regularly copying big files over the internet via rsync, and since I am travelling a lot, I don't generally have access to stable internet con...
Collapse
 
marleythemanzan profile image
Alexander C. Wilcots

To maximize laziness, you can make it into a function called retry() and have the rsync command as the first argument.

Collapse
 
mayeu profile image
Mayeu

Yup, but I'm too lazy to maximize my laziness :D

Anyway, if somebody is wondering, something like that should do it (ugly, may be unsafe, you are warned):

function retry() {
  until $1 ;
  do
    echo "Retrying at `date -Iminutes`";
  done
}
Collapse
 
_ajduke profile image
Abhijeet S. Sutar

How about this CLI tool - github.com/nvbn/thefuck

Collapse
 
mayeu profile image
Mayeu

Hey, thank you for your reply :)

This is not really the same, thefuck correct spelling errors of the previous command you do. While using until will perpetually re-run the command until the exit code is 0 (i.e.: until it is a success).

In the case of rsync that allow you to continue the download until it succeed :)