欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell wait等待命令的具體使用

 更新時(shí)間:2023年01月12日 10:17:38   作者:ghostwritten  
本文主要介紹了shell wait等待命令的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 簡介

bash wait 命令是一個(gè) Shell 命令,它等待后臺運(yùn)行的進(jìn)程完成并返回退出狀態(tài)。與等待指定時(shí)間的sleep 命令不同,該wait命令等待所有或特定后臺任務(wù)完成。

2. 語法

在 bash 腳本中使用wait命令有不同的方法。下表解釋了每個(gè)用例。

命令解釋
wait如果沒有任何參數(shù),該wait命令會(huì)等待所有后臺進(jìn)程完成,然后再繼續(xù)執(zhí)行腳本。
wait添加的 PID 或作業(yè) ID 會(huì)等待特定進(jìn)程結(jié)束,然后再繼續(xù)執(zhí)行腳本。
wait -n僅等待以下后臺進(jìn)程完成并返回退出狀態(tài)。
wait -f終止程序首先等待后臺任務(wù)完成后再退出。

3. 示例

3.1 等待命令

在 bash 腳本中使用wait時(shí)需要了解三個(gè)附加參數(shù):

1.&命令后的和號 ( ) 表示后臺作業(yè)。

2.$!獲取最后一個(gè)后臺進(jìn)程的PID。使用多個(gè)后臺進(jìn)程時(shí),將先前的 PID 存儲在一個(gè)變量中。

3.$?打印上一個(gè)進(jìn)程的退出狀態(tài)。

要查看這三個(gè)參數(shù)如何協(xié)同工作,請打開終端窗口并運(yùn)行:

sleep 10 &
echo $!
echo $?

在這里插入圖片描述

$!參數(shù)存儲后臺進(jìn)程PID,同時(shí)$?存儲退出狀態(tài)。退出狀態(tài)0表示命令成功完成。

3.2 單進(jìn)程等待

首先打開終端并創(chuàng)建一個(gè)簡單的后臺進(jìn)程:

sleep 10 &

確認(rèn)作業(yè)在后臺運(yùn)行:

jobs -l

使用wait不帶任何參數(shù)的命令暫停直到進(jìn)程完成:

wait

在這里插入圖片描述

在這里插入圖片描述

10 秒后(由于sleep 10),控制臺打印完成消息。

3.3 單進(jìn)程 bash 等待

使用該wait命令指示后臺進(jìn)程必須在腳本內(nèi)執(zhí)行的時(shí)間點(diǎn)。

例如,在文本編輯器中添加以下代碼:

#!/bin/bash
echo Background process &
echo First message
echo Second message
wait
echo Third message

如果后臺進(jìn)程沒有完成第一個(gè)和第二個(gè)進(jìn)程,則該wait命令調(diào)用暫停以等待第二個(gè)進(jìn)程之后后臺進(jìn)程完成,然后再繼續(xù)執(zhí)行第三個(gè)進(jìn)程。

將腳本另存為single_process.sh。在終端中,更改權(quán)限以使腳本可執(zhí)行:

sudo chmod +x single_process.sh

運(yùn)行腳本:

./single_process.sh

在這里插入圖片描述

后臺進(jìn)程在命令之前的任何時(shí)間完成wait,并且腳本繼續(xù)。

3.4 多個(gè)進(jìn)程等待

1.打開文本編輯器,添加以下多進(jìn)程腳本:

#!/bin/bash
sleep 10 &
sleep 15 &
sleep 5 &
echo $(date +%T)
wait 
echo $(date +%T)

wait該腳本在命令之前和之后打印當(dāng)前時(shí)間。沒有任何參數(shù),程序會(huì)等待所有進(jìn)程完成。

將腳本另存為test.sh并關(guān)閉文件。接下來,使腳本可執(zhí)行:

sudo chmod +x test.sh

最后,運(yùn)行程序:

./test.sh

在這里插入圖片描述

由于進(jìn)程在后臺運(yùn)行,所有三個(gè)進(jìn)程都在十五秒內(nèi)完成。

使用相同的腳本測試以下用例:

  • -n參數(shù)添加到<strong>wait</strong>. 只有最快的過程完成,腳本在十秒后結(jié)束。
  • 添加作業(yè) ID 以指示腳本應(yīng)等待哪個(gè)作業(yè)。例如,wait %1暫停以等待進(jìn)程 1 ( sleep 10) 完成。

3.5 多個(gè)進(jìn)程 bash 等待 PID

與多個(gè)進(jìn)程一起工作時(shí),使用 PID 來標(biāo)識一個(gè)進(jìn)程。下面的示例腳本顯示了一個(gè)用例:

#!/bin/bash
echo "Process 1 lasts for 2s" && sleep 2 &
PID=$!
echo "Process 2 lasts for 3s" && sleep 3 &
echo "Current time $(date +%T)"
wait $PID
echo "Process 1 ended at time $(date +%T) with exit status $?"
wait $!
echo "Process 2 ended at time $(date +%T) with exit status $?"

將腳本另存為multi_wait.sh。使腳本可執(zhí)行:

sudo chmod +x multi_wait.sh

運(yùn)行腳本查看輸出:

./multi_wait.sh

在這里插入圖片描述

該腳本需要兩秒鐘來完成第一個(gè)過程(由于sleep2)和三秒鐘來完成第二個(gè)過程。這兩個(gè)過程同時(shí)執(zhí)行,都在三秒內(nèi)完成。

參考:

Bash wait Command with Examples

到此這篇關(guān)于shell wait等待命令的具體使用的文章就介紹到這了,更多相關(guān)shell wait內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Shell?腳本自動(dòng)輸入密碼的三種方式小結(jié)

    Shell?腳本自動(dòng)輸入密碼的三種方式小結(jié)

    本文主要介紹了Shell?腳本自動(dòng)輸入密碼的三種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Shell腳本如何逐行處理文本文件

    Shell腳本如何逐行處理文本文件

    這篇文章主要給大家介紹了關(guān)于Shell腳本如何逐行處理文本文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Shell常用服務(wù)器日志分析命令總結(jié)

    Shell常用服務(wù)器日志分析命令總結(jié)

    有時(shí)我們需要分析分析自己網(wǎng)站服務(wù)器日志,看看網(wǎng)站的訪問量??纯从袥]有黑闊搞破壞!于是收集,整理一些服務(wù)器日志分析命令,大家可以試試
    2022-06-06
  • Linux 怎么實(shí)現(xiàn)添加FTP用戶并設(shè)置權(quán)限的方法

    Linux 怎么實(shí)現(xiàn)添加FTP用戶并設(shè)置權(quán)限的方法

    這篇文章主要介紹了Linux 怎么實(shí)現(xiàn)添加FTP用戶并設(shè)置權(quán)限的方法的相關(guān)資料,這里對添加FTP用戶進(jìn)行了步驟詳解,需要的朋友可以參考下
    2017-01-01
  • Shell中exit和return的區(qū)別講解

    Shell中exit和return的區(qū)別講解

    今天小編就為大家分享一篇關(guān)于,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • shell腳本實(shí)現(xiàn)拷貝大文件顯示百分比的代碼分享

    shell腳本實(shí)現(xiàn)拷貝大文件顯示百分比的代碼分享

    這篇文章主要介紹了shell腳本實(shí)現(xiàn)拷貝大文件顯示百分比的代碼分享,需要的朋友可以參考下
    2014-08-08
  • awk腳本統(tǒng)計(jì)一組單詞中字母出現(xiàn)最多最少頻率

    awk腳本統(tǒng)計(jì)一組單詞中字母出現(xiàn)最多最少頻率

    這篇文章主要介紹編寫一個(gè) awk 腳本來找到一組單詞中出現(xiàn)次數(shù)最多(和最少)的單詞頻率,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • shell批量curl接口腳本的簡單實(shí)現(xiàn)方法

    shell批量curl接口腳本的簡單實(shí)現(xiàn)方法

    這篇文章主要跟大家介紹了關(guān)于shell批量curl接口腳本的簡單實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用shell具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Linux nc命令使用示例

    Linux nc命令使用示例

    nc是netcat的簡寫,是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)工具,有著網(wǎng)絡(luò)界的瑞士軍刀美譽(yù),nc命令在linux系統(tǒng)中實(shí)際命令是ncat,nc是軟連接到ncat,這篇文章主要介紹了Linux nc命令使用示例,需要的朋友可以參考下
    2023-03-03
  • shell腳本的流程控制語句的實(shí)現(xiàn)

    shell腳本的流程控制語句的實(shí)現(xiàn)

    本文主要介紹了shell腳本的流程控制語句的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論