如何重復(fù)執(zhí)行一個Linux命令,直到成功為止
【YINGSOO提示】文章內(nèi)容收集整理于網(wǎng)絡(luò),僅供參考!如需了解“如何重復(fù)執(zhí)行一個Linux命令,直到成功為止”等有關(guān)服務(wù)器、云主機租用、托管、配置、價格問題,請咨詢YINGSOO客服,為您答疑解惑!
【主機上新】俄羅斯云服務(wù)器 | 韓國CN2服務(wù)器 | 日本云服務(wù)器
【精選文章】如何選擇海外云主機?看完這7條你就會選了
如果你想在Linux系統(tǒng)服務(wù)器上運行一個命令,直到它成功,有一些非常簡單的方法可以做到這一點,不需要你重復(fù)輸入命令或坐在屏幕前按! ,直到命令成功為止。在這篇文章中,我們將看看bash的兩個選項。
1、使用 while !
首先,我們來看看一個簡單的例子,試圖顯示一個文件的內(nèi)容。這個技巧是使用bash的while命令來創(chuàng)建一個循環(huán),但是在你要運行的命令前加上一個 !號,這樣它就可以循環(huán),直到命令成功為止。下面是它的工作原理。
$ while ! cat missingfile
! 作為一個 "不 "條件。把這一行讀成 "雖然不能顯示指定的文件"。 如果文件確實丟失了,或者由于某種原因,你沒有讀取文件的權(quán)限,那么顯示 "missingfile" 的內(nèi)容的嘗試就會失敗。然而,為了完成while命令,你需要指定文件不可用時應(yīng)該發(fā)生的事情。所以,我們在這里增加了一些行來充實while命令。
$ while ! cat missingfile
do
echo waiting for missingfile
sleep 10
done
一旦某個人或進程把missicefile丟到了, cat missfile命令應(yīng)該會成功(假設(shè)你有權(quán)限查看),while命令會在下一次檢查時退出。睡眠命令可以確保你不會每隔一秒鐘就嘗試很多次,迅速讓你的屏幕上充滿了 "waiting for missicefile "的消息。你檢查的頻率應(yīng)該取決于你是想在文件可用的時候就看到它,還是要等待一段時間--在這種情況下,最多10秒。
echo命令真的不需要,除非你想被提醒你在等待文件可用的時候,否則就不需要。
一旦文件可用,while命令就會退出,你就可以進入下一步--可能是以某種方式使用該文件,或者在確定文件可用后再轉(zhuǎn)到其他任務(wù)上。
你也可以在運行腳本時使用這種方法。在這個命令中,我們每隔10秒嘗試一次while命令,等待runme腳本運行成功。
$ while ! ./runme
do
sleep 10
done
注意,"while ! ./runme "命令相當(dāng)于指定了 "當(dāng)腳本運行失敗時"。
2、使用until
你也可以使用 "until "命令來完成同樣的事情。你可以使用 "直到它是 "邏輯來代替 "while not "邏輯。這些命令的工作原理與上圖中的相同。
$ until cat missingfile
do
echo waiting for missingfile
sleep 10
done
$ until ./runme
do
sleep 10
done
一旦出現(xiàn)missingfile或runme腳本成功運行,循環(huán)將退出。
3、腳本中的循環(huán)
你也可以使用while ! 或 until命令來反復(fù)嘗試運行腳本中的一些命令。如果你有一個依賴其他文件運行的腳本,你可以這樣做。
#!/bin/bash
until ls myscript 2>/dev/null
echo waiting
sleep 10
done
./myscript
腳本將繼續(xù)嘗試,直到它能運行指定的腳本。
注意,這個腳本會顯示出它正在等待myscript出現(xiàn)的消息,但它會將測試中的錯誤輸出發(fā)送到/dev/null(又名 "bit bucket"),以防止腳本顯示錯誤,表明有什么東西壞了。一旦myscript可用,循環(huán)退出,腳本就會運行。
當(dāng)然,你可能根本不想看到 "等待 "的信息填滿你的屏幕。你可以完全省略回聲命令,尤其是當(dāng)你確信腳本最終會被運行,并且在完成后會收到通知。
爆款產(chǎn)品:美國服務(wù)器去首頁享優(yōu)惠!YINGSOO推出Phala挖礦服務(wù)器、Chia奇亞農(nóng)場服務(wù)器、Swarm物理節(jié)點服務(wù)器、Swarm母雞服務(wù)器、Swarm云節(jié)點服務(wù)器、國內(nèi)礦機服務(wù)器海外托管、《Phala PHA挖礦資料大全》,《swarm bzz挖礦資料大全》,Swarm Bee節(jié)點租用請咨詢YINGSOO客服!官網(wǎng)www.sddonglingsh.com
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。