广告
返回顶部
首页 > 资讯 > 操作系统 >shell wait等待命令的具体使用
  • 943
分享到

shell wait等待命令的具体使用

shellwait 2023-01-12 11:01:06 943人浏览 薄情痞子
摘要

目录1. 简介2. 语法3. 示例3.1 等待命令3.2 单进程等待3.3 单进程 bash 等待3.4 多个进程等待3.5 多个进程 bash 等待 PID1. 简介 bash wait 命令是一个 shell 命令,

目录
  • 1. 简介
  • 2. 语法
  • 3. 示例
    • 3.1 等待命令
    • 3.2 单进程等待
    • 3.3 单进程 bash 等待
    • 3.4 多个进程等待
    • 3.5 多个进程 bash 等待 PID

1. 简介

bash wait 命令是一个 shell 命令,它等待后台运行的进程完成并返回退出状态。与等待指定时间的sleep 命令不同,该wait命令等待所有或特定后台任务完成。

2. 语法

在 bash 脚本中使用wait命令有不同的方法。下表解释了每个用例。

命令解释
wait如果没有任何参数,该wait命令会等待所有后台进程完成,然后再继续执行脚本。
wait添加的 PID 或作业 ID 会等待特定进程结束,然后再继续执行脚本。
wait -n仅等待以下后台进程完成并返回退出状态。
wait -f终止程序首先等待后台任务完成后再退出。

3. 示例

3.1 等待命令

在 bash 脚本中使用wait时需要了解三个附加参数:

1.&命令后的和号 ( ) 表示后台作业。

2.$!获取最后一个后台进程的PID。使用多个后台进程时,将先前的 PID 存储在一个变量中。

3.$?打印上一个进程的退出状态。

要查看这三个参数如何协同工作,请打开终端窗口并运行:

sleep 10 &
echo $!
echo $?

在这里插入图片描述

$!参数存储后台进程PID,同时$?存储退出状态。退出状态0表示命令成功完成。

3.2 单进程等待

首先打开终端并创建一个简单的后台进程:

sleep 10 &

确认作业在后台运行:

jobs -l

使用wait不带任何参数的命令暂停直到进程完成:

wait

在这里插入图片描述

在这里插入图片描述

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

3.3 单进程 bash 等待

使用该wait命令指示后台进程必须在脚本内执行的时间点。

例如,在文本编辑器中添加以下代码:

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

如果后台进程没有完成第一个和第二个进程,则该wait命令调用暂停以等待第二个进程之后后台进程完成,然后再继续执行第三个进程。

将脚本另存为single_process.sh。在终端中,更改权限以使脚本可执行:

sudo chmod +x single_process.sh

运行脚本:

./single_process.sh

在这里插入图片描述

后台进程在命令之前的任何时间完成wait,并且脚本继续。

3.4 多个进程等待

1.打开文本编辑器,添加以下多进程脚本:

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

wait该脚本在命令之前和之后打印当前时间。没有任何参数,程序会等待所有进程完成。

将脚本另存为test.sh并关闭文件。接下来,使脚本可执行:

sudo chmod +x test.sh

最后,运行程序:

./test.sh

在这里插入图片描述

由于进程在后台运行,所有三个进程都在十五秒内完成。

使用相同的脚本测试以下用例:

  • -n参数添加到<strong>wait</strong>. 只有最快的过程完成,脚本在十秒后结束。
  • 添加作业 ID 以指示脚本应等待哪个作业。例如,wait %1暂停以等待进程 1 ( sleep 10) 完成。

3.5 多个进程 bash 等待 PID

与多个进程一起工作时,使用 PID 来标识一个进程。下面的示例脚本显示了一个用例:

#!/bin/bash
echo "Process 1 lasts for 2s" && sleep 2 &
PID=$!
ect $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。使脚本可执行:

sudo chmod +x multi_wait.sh

运行脚本查看输出:

./multi_wait.sh

在这里插入图片描述

该脚本需要两秒钟来完成第一个过程(由于sleep2)和三秒钟来完成第二个过程。这两个过程同时执行,都在三秒内完成。

参考:

Bash wait Command with Examples

到此这篇关于shell wait等待命令的具体使用的文章就介绍到这了,更多相关shell wait内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: shell wait等待命令的具体使用

本文链接: https://www.lsjlt.com/news/177469.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell wait等待命令的具体使用
    目录1. 简介2. 语法3. 示例3.1 等待命令3.2 单进程等待3.3 单进程 bash 等待3.4 多个进程等待3.5 多个进程 bash 等待 PID1. 简介 bash wait 命令是一个 Shell 命令,...
    99+
    2023-01-12
    shellwait
  • shellwait等待命令的具体使用
    目录1. 简介2. 语法3. 示例3.1 等待命令3.2 单进程等待3.3 单进程 bash 等待3.4 多个进程等待3.5 多个进程 bash 等待 PID1. 简介 bash w...
    99+
    2023-01-12
    shell wait
  • shell命令之mv的具体使用
    目录文件间的移动文件到目录的移动目录到目录的移动思考操作系统为 macOS 10.12.4 shell 的 mv 命令为移动(moving)的意思,实际可分为文件间的移动,文件到目录的移动,目录到目录的移动。 mv参数设...
    99+
    2022-06-05
    shell命令mv
  • Linux bash wait命令具体使用方法是什么
    Linux bash wait命令具体使用方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。wait命令可以使当前shell进程挂起,等待所指定的由当前shell产生的子...
    99+
    2023-06-28
  • shell sleep睡眠命令的具体使用
    目录1. 背景2. 简介3. 语法4. 与 wait 区别5. 实例5.1 设置警报5.2 终端中的延迟命令5.3 变量分配给 sleep5.4 定义检查间隔5.5 为操作完成留出时间5.6 预测延迟1. 背景 当用户在...
    99+
    2023-01-12
    shellsleep命令 shellsleep睡眠命令
  • Shell查找命令find和grep的具体使用
    目录第一节 文件查找之find命令第二节 find、locate、whereis和which总结第三节 grep和egrep第一节 文件查找之find命令 语法格式:find [路径] [选项] [操作] ...
    99+
    2023-03-23
    Shell查找命令find和grep Shell find Shell grep
  • SHELL脚本read命令的具体用法
    1.1 shell read简介 要与linux交互,脚本获取键盘输入的结果是必不可少的,read可以读取键盘输入的字符。 shell作为一门语言,自然也具有读数据的功能,read就是按行从文件(或标准输入或给定文件描...
    99+
    2022-06-04
    SHELL read命令 SHELL read
  • Rediskeys命令的具体使用
    keys命令: DEL KEY:该命令用于在key存在时删除key DUMP KEY:序列化给定key,并返回被序列化的值 序列化:把对象转化为可传输的字节的序列过程称为序列化 ...
    99+
    2022-11-13
  • dockersearch命令的具体使用
    目录一、docker search 命令选项二、docker search 使用实例2.1 通过指定镜像名搜索2.2 搜索结果不进行截断显示2.3 设置搜索结果只显示10个2.4 搜...
    99+
    2023-02-13
    docker search命令 docker search
  • Linux dirname命令的具体使用
    01. 命令概述 dirname - 从文件名剥离非目录的后缀 dirname命令去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到...
    99+
    2022-06-04
    Linux dirname命令 Linux dirname
  • Linux gcc命令的具体使用
    01. 命令概述 gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。 gcc是GNU编译器套件(GNU Compiler Collectio...
    99+
    2022-06-04
    Linux gcc命令 Linux gcc
  • Linux man命令的具体使用
    01. 命令概述 linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。 同时也可以使用man man 查看man的使用方法。 02. 命令格式 man [-adfhktwW]...
    99+
    2022-06-04
    Linux man命令 Linux man
  • Linux which命令的具体使用
    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置。 whereis 查看文件的位置。 locate 配合数据库查看文件位置。...
    99+
    2022-06-04
    Linux which命令 Linux which
  • Java的jmap命令的具体使用
    目录jmap命令简介jmap命令参数-heap-histo[:live]-clstats-finalizerinfo-dump:[live,]format=b,file=-F-h 和...
    99+
    2022-11-13
  • GoLang之gobuild命令的具体使用
    目录1.go build命令2.手动案例2.1新建文件2.2配置2.3go mod init2.4go get -u github.com/jinzhu/configor2.5go ...
    99+
    2022-11-11
  • shellsleep睡眠命令的具体使用
    目录1. 背景2. 简介3. 语法4. 与 wait 区别5. 实例5.1 设置警报5.2 终端中的延迟命令5.3 变量分配给 sleep5.4 定义检查间隔5.5 为操作完成留出时...
    99+
    2023-01-12
    shell sleep命令 shell sleep睡眠命令
  • Python命令行库click的具体使用
    目录一、前言二、介绍三、快速开始四、小结一、前言 今天要介绍的 click 则是用一种你很熟知的方式来玩转命令行。命令行程序本质上是定义参数和处理参数,而处理参数的逻辑一定是与所定义...
    99+
    2022-11-11
  • Linux的iptstate命令具体使用方法
    这篇文章主要介绍“Linux的iptstate命令具体使用方法”,在日常操作中,相信很多人在Linux的iptstate命令具体使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux的iptstat...
    99+
    2023-06-28
  • 批处理copy命令的具体使用
    目录示例单个文件的复制批量复制文件合并文件没有后缀的文件怎么复制?本文的命令说明来自与DOS命令帮助说明,如果与DOS命令帮助说明不同,请以DOS命令帮助说明为准。 语法 copy[...
    99+
    2022-11-13
  • Linux Uptime命令的具体用法
    本篇内容介绍了“Linux Uptime命令的具体用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!对于一些人来说系统运行了多久是无关紧要的...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作