NEXT_WAIT_TIME=0 COMMAND_STATUS=1 until [ $COMMAND_STATUS -eq 0 || $NEXT_WAIT_TIME -eq 4 ]; do command COMMAND_STATUS=$? sleep $NEXT_WAIT_TIME let NEXT_WAIT_TIME=NEXT_WAIT_TIME+1 done リトライ間隔を0秒、1秒、2秒… と増やしながら実行する感じですね。 ただ、これだと、2回めで成功してもsleepしちゃうな、とか、最終的に全部失敗した際、無駄に最後にsleepだけして終了するな、とか気になりました。 回答2 #!/bin/bash # Retries a command on failure. # $1 - the max number of attempts # $2... - the command to
![bash で コマンドが成功するまでリトライする - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e487a3ba10d53a5ccd3c6a02bc17d7c1e9d7a146/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9YmFzaCUyMCVFMyU4MSVBNyUyMCVFMyU4MiVCMyVFMyU4MyU5RSVFMyU4MyVCMyVFMyU4MyU4OSVFMyU4MSU4QyVFNiU4OCU5MCVFNSU4QSU5RiVFMyU4MSU5OSVFMyU4MiU4QiVFMyU4MSVCRSVFMyU4MSVBNyVFMyU4MyVBQSVFMyU4MyU4OCVFMyU4MyVBOSVFMyU4MiVBNCVFMyU4MSU5OSVFMyU4MiU4QiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9ZDU5Y2I3ZTYzMDUyZTFjYTBkMjJlYzlhM2VlYzE3MTA%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBpbm91ZXQmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWRkYjI1M2YyZGU3ZjYzZTNmN2VlZTNiMGI4YmFjYThl%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4gTWVyY2FyaQ%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D3714d97c75e85b70f0b10da5da7bfad8)