我目前運行兩個命令:
- 睡眠 180
- wget https://somedomain.com/api/up
所以它等待3分鐘然后呼叫api
我想改變它,讓它每分鐘持續檢查最多十分鐘,直到 wget 回傳 200。
所以它應該相當于這個 php 函式,但是在 bash 中。單行很重要(可以是多個陳述句,用 ; 分隔)
foreach(range(1,10) as $i) {
sleep(60);
try {
Http::get('https://somedomain.com/api/up');
break;
} catch(Exception $e) {
if($i>=10) throw $e;
}
}
我的 bash 知識讓我失望的兩件事:
- 如何進行 try catch 或檢查 200 回應代碼。
- 如何將所有內容整合到一行/陳述句中
uj5u.com熱心網友回復:
使用一個for
回圈,所有陳述句由分隔;
for i in {1..10}; do sleep 60; wget 'https://somedomain.com/api/up' && break; done
uj5u.com熱心網友回復:
for i in {1..5}; do wget -- "$1" && break || sleep 15; done
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532837.html
標籤:重击