Skip to content

Instantly share code, notes, and snippets.

@ViktorStiskala
Created January 22, 2014 10:47
Show Gist options
  • Select an option

  • Save ViktorStiskala/8556763 to your computer and use it in GitHub Desktop.

Select an option

Save ViktorStiskala/8556763 to your computer and use it in GitHub Desktop.

Revisions

  1. Viktor Stískala created this gist Jan 22, 2014.
    12 changes: 12 additions & 0 deletions random_crash.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    #!/bin/bash
    number=$RANDOM

    let "number %= 10"

    if [[ $number -gt 8 ]]
    then
    echo "Success"
    exit 0
    fi
    echo "Fail"
    exit 1
    28 changes: 28 additions & 0 deletions retry.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    #!/bin/bash

    retry () {
    local max_retries=$1
    shift 1

    local retry_counter=$max_retries
    while [ $retry_counter -gt 0 ];
    do
    if [ $retry_counter -ne $max_retries ]
    then
    echo "Retrying: $@" 1>&2
    fi

    "$@" && break

    retry_counter=$(($retry_counter - 1))
    done

    if [ $retry_counter -eq 0 ]
    then
    echo "Max retries reached, giving up" 1>&2
    return 1
    fi
    return 0
    }

    retry 5 ./random_crash.sh