如何使用Linux Sleep命令暫停Bash腳本

Unity桌面概念上的Bash shellFatmawati Achmad Zaenuri / Shutterstock.com

sleep命令使您的Linux計算機什麼都不做。或許反直覺,但有時候一段時間不活動就是需要的。本文介紹如何有效地使用此Bash shell命令。

運用 睡覺 簡單。在命令行類型上 睡覺,空格,數字,然後按Enter鍵。

睡覺5

光標將消失五秒鐘然後返回。發生了什麼?運用 睡覺 在命令行上指示Bash在您提供的持續時間內暫停處理。在我們的例子中,這是五秒鐘。

sleep 5命令沒有可見輸出

我們可以將持續時間傳遞給 睡覺 以天,小時和分鐘為單位,以秒為單位。為此,請包含後綴 d,h,m, 要麼 小號 與持續時間。要使睡眠暫停一天,四小時,七分五秒,請使用如下命令:

睡1d 4h 7m 5s

小號 後綴(秒)是可選的。沒有後綴, 睡覺 將任何持續時間視為秒。假設你想擁有 睡覺 暫停五分二十秒。此命令的一種正確格式是:

睡5個月20

如果你忘了提供 分鐘持續時間的後綴,你會指示 睡覺 暫停五秒,然後再暫停二十秒。所以 睡覺 會暫停25秒。

許多命令要求您按特定順序提供參數,但是 睡覺 很寬容。您可以按任何順序提供它們 睡覺 他們會理解他們的意義。您還可以提供浮點數作為參數。例如,0.5h是表明您希望的有效方式 睡覺 暫停半小時。

所有以下(越來越古怪)的命令都告訴我們 睡覺 暫停10秒鐘。

睡10
睡5 5s
睡1 1 1s 1 1 1s 1 2
睡眠0.16667米

在命令之前使用Sleep來暫停

睡覺 命令可用於在執行命令之前暫停。此命令將暫停15秒,然後發出嗶嗶聲。

睡15 && echo -en' 007'

使用Sleep在兩個命令之間暫停

您可以使用 睡覺 在兩個命令之間暫停此命令將列出Documents目錄中的文件,暫停五秒鐘,然後將當前工作目錄更改為您的主目錄:

ls -R~ / Documents && sleep 5 && cd~

兩個命令的輸出由sleep分隔

使用Sleep來暫停執行腳本

你可以使用 睡覺 shell腳本中的命令可以在一段精確的時間內暫停執行腳本。通常,您這樣做是為了讓某些進程有足夠的時間在腳本繼續處理之前完成。您還可以使用它來限制腳本對其他資源的請求。

為了證明這一點,這裡有一個腳本,使用它來調用Google Web服務 捲曲。當您使用書籍的ISBN號查詢Web服務時,它會響應有關該書籍的JSON數據轉儲。我們可以通過傳遞它來解析該數據 JQ 用於檢索書名的實用程序。因此,腳本不會對Web服務造成壓力,它會在Web請求之間休眠一秒鐘。

創建包含以下文本的文件,並將其另存為 check_book.sh

#!/斌/慶典

用於預訂`cat $ 1`

 echo $ book“:”
 curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq'.items | 。[] | .volumeInfo.title”
 回聲“”
 睡覺1
DONE

回聲“一切都完成了。”

鍵入以下命令以設置執行權限並使腳本可執行。

chmod + x check_book.sh

該腳本需要 捲曲JQ 公用事業。使用 apt-get的 如果您使用的是Ubuntu或其他基於Debian的發行版,請將這些軟件包安裝到您的系統上。在其他Linux發行版上,請使用Linux發行版的包管理工具。

sudo apt-get install curl
sudo apt-get install jq

創建包含以下數字的文本文件,並將其另存為 books.txt

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

跑過 check_book.sh 腳本並傳入 books.txt file作為參數。

./check_book.sh books.txt

check_book.sh shell腳本的輸出

這些請求會每隔一秒向Google Web服務發出一次請求。在查詢每個ISBN號後不久將出現該書的標題。

這就是全部 睡覺。內部的運作方式 check_book.sh 腳本超出了本文的範圍。選擇該劇本純粹是為了說明該劇本的有效用途 睡覺 命令。如果您想了解有關腳本的兩個主要組件的更多信息,請參閱 捲曲 項目頁面和 JQ 在線手冊。

本文機器自動生成,不保證語句完整通順和表達準確,亦不對內容真實有效性負責,請讀者知悉。