iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux bash wait命令具体使用方法是什么
  • 225
分享到

Linux bash wait命令具体使用方法是什么

2023-06-28 11:06:08 225人浏览 泡泡鱼
摘要

linux bash wait命令具体使用方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。wait命令可以使当前shell进程挂起,等待所指定的由当前shell产生的子

linux bash wait命令具体使用方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

wait命令可以使当前shell进程挂起,等待所指定的由当前shell产生的子进程退出后,wait命令才返回。wait命令的参数可以是进程ID或是job。

Bash wait命令

wait内置的一般语法采用以下形式:

 wait [options] ID

Copy

ID是进程或任务ID。 如果没有指定ID,则命令等待所有后台任务直到完成。

wait命令返回wait的最后一个命令的退出状态。

例如,要wait PID 7654的后台进程,您将使用:

 wait 7654

Copy

当给出多个进程时,命令等待所有进程完成。

使用jobspec指定作业,这是一种引用构成作业的进程的方法。 Jobspec以百分比符号开始,后跟作业编号(%n)。 这是一个在后台运的ded例子:

 rsync -a /home /tmp/home &

Copy

shell作业ID(括号括起来)和进程ID将显示在终端上:

 [2] 54377

Copy

等待作业,运行wait命令后跟Jobspec:

 wait %2

Copy

在使用-n选项中调用时,命令仅在指定的PID或Jobspecs中仅等待单个作业完成并返回其退出状态。 如果没有提供参数,wait -n等待任何后台作业完成并返回作业退出状态。

 wait -n 45432 54346 76573

Copy

在上面的示例中,wait -n仅打印首先退出的作业的返回状态; 它没有显示进程的PID。 如果要获取返回退出状态的进程PID或Jobspec,请使用-p选项将其分配给变量:

 wait -p job_id -n 45432 54346 76573

Copy

-p选项在BASH 5.1中引入。 如果使用较旧的BASH版本,您将获得“invalid option”错误。

-f选项告诉wait等待每个PID或JOBSPEC在返回其退出代码之前终止,而不是在更改作业状态时返回。 启用作业控件时,此选项仅有效。 默认情况下,仅为交互式提示启用作业控件。

例子

wait通常用于shell脚本生成并行执行的子进程。

为了说明命令如何工作,创建以下脚本:

 #!/bin/bash sleep 30 & process_id=$! echo "PID: $process_id" wait $process_id echo "Exit status: $?"

Copy

让我们按行解释代码行:

  • 第一行称为shebang,它告诉操作系统使用哪个解释器来解析文件的其余部分。

  • 使用sleep命令来模拟一个耗时的后台进程。

  • $!是Bash内部变量,用于在后台存储上一次运行的进程的PID。 在此示例中,这是sleep命令的PID。 我们将PID存储在变量(process_id)中。

  • 打印PID号。

  • PID传递给wait命令,该命令等待直到睡眠命令完成。

打印wait命令的退出状态。 $?是内部Bash变量,用于保存最后执行的命令的退出状态。

如果您运行脚本,它将打印这样的内容:

 PID: 36353 Exit status: 0

Copy

这里使用-n选项的示例:

 #!/bin/bash sleep 3 & sleep 30 & sleep 5 & wait -n echo "First job completed." wait echo "All jobs completed."

Copy

执行脚本时,它会产生3个后台进程。 wait -n等待直到完成第一个作业并打印echo语句。 wait等待所有后台任务完成。

 first job completed all jobs completed

Copy

最后一个示例说明-f选项。 打开终端并运行:

 sleep 3600 &

Copy

 [1] 46671

Copy

等待这个进程:

 wait 46671

Copy

打开另一个终端并使用kill命令停止进程:

 kill -STOP 46671

Copy

一旦改变了进程状态,wait命令将完成并返回进程退出代码。

现在,重复相同的步骤,但这一次使用wait -f $pid:

 sleep 3600 & wait -f 46671

Copy

停止另一个终端的进程:

 kill -STOP 46671

Copy

这次wait命令将无法完成。 它将在sleep进程终止之前运行。

看完上述内容,你们掌握Linux bash wait命令具体使用方法是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网操作系统频道,感谢各位的阅读!

--结束END--

本文标题: Linux bash wait命令具体使用方法是什么

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

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

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

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

下载Word文档
猜你喜欢
  • Linux bash wait命令具体使用方法是什么
    Linux bash wait命令具体使用方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。wait命令可以使当前shell进程挂起,等待所指定的由当前shell产生的子...
    99+
    2023-06-28
  • Linux grep命令具体使用方法是什么
    Linux grep命令具体使用方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux grep 命令用于查找文件里符合条件的字符串,grep 指令用于查找内容包含...
    99+
    2023-06-28
  • Linux系统top命令的具体使用方法是什么
    这篇文章跟大家分析一下“Linux系统top命令的具体使用方法是什么”。内容详细易懂,对“Linux系统top命令的具体使用方法是什么”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习...
    99+
    2023-06-28
  • Linux系统file命令的具体使用方法是什么
    Linux系统file命令的具体使用方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。\1. Windows以不同的扩展名来区分不同的文件,例如:.exe...
    99+
    2023-06-28
  • Linux系统命令pidof的具体使用方法是什么
    本篇文章给大家分享的是有关Linux系统命令pidof的具体使用方法是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如何使用pidof命令对于基于Red Hat和Debia...
    99+
    2023-06-28
  • Linux系统at命令的具体使用方法是什么
    今天给大家介绍一下Linux系统at命令的具体使用方法是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。at简介at是一个计划任务,可以在特定的时间执行某项...
    99+
    2023-06-28
  • Linux系统sort命令的具体使用方法是什么
    本篇文章为大家展示了Linux系统sort命令的具体使用方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在Linux系统中 sort 命令可以对文件进行各种排序,所以sort 命令可以当作个...
    99+
    2023-06-28
  • 使用SSH远程运行Linux命令具体方法是什么
    使用SSH远程运行Linux命令具体方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来...
    99+
    2023-06-28
  • Linux的iptstate命令具体使用方法
    这篇文章主要介绍“Linux的iptstate命令具体使用方法”,在日常操作中,相信很多人在Linux的iptstate命令具体使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux的iptstat...
    99+
    2023-06-28
  • Linux系统命令scp和ssh的具体使用方法是什么
    今天给大家介绍一下Linux系统命令scp和ssh的具体使用方法是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。如果ssh的端口是22,那么可以不用指定-...
    99+
    2023-06-28
  • Linux系统中历史命令的具体使用方法是什么
    这篇文章给大家介绍Linux系统中历史命令的具体使用方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当你在Linux中执行命令之后,你所执行的命令都会在历史命令中记录,合理的使用历史命令可以不必每次都输入命令。...
    99+
    2023-06-28
  • Linux命令工具的使用方法是什么
    这篇文章给大家介绍Linux命令工具的使用方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux 上有太多的命令了,如果背的话不知道得背到什么时候,但是Linux中有 Bash 命令历史以及像 apropo...
    99+
    2023-06-28
  • Linux中history命令的具体使用方法
    这篇文章主要介绍“Linux中history命令的具体使用方法”,在日常操作中,相信很多人在Linux中history命令的具体使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中history...
    99+
    2023-06-13
  • Linux Bash写入文件的具体方法是什么
    这篇文章给大家介绍Linux Bash写入文件的具体方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用重定向操作符写入文件在Bash中,输出的重定向使您可以从命令捕获输出并将其写入文件。将输出重定向和写入文件...
    99+
    2023-06-28
  • Linux系统杀死进程命令的具体方法是什么
    这篇文章的内容主要围绕Linux系统杀死进程命令的具体方法是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!Linux系统中如何结束某个进程?1 ...
    99+
    2023-06-28
  • Linux ed命令的使用方法是什么
    本篇内容介绍了“Linux ed命令的使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ed单行纯文本编辑器语法 ed(...
    99+
    2023-06-28
  • Linux dirs命令的使用方法是什么
    这篇文章主要介绍了Linux dirs命令的使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux dirs命令的使用方法是什么文章都会有所收获,下面我们一起来看看吧。Linux常用命令dirs...
    99+
    2023-06-28
  • Linux系统kill具体使用方法是什么
    本篇文章为大家展示了Linux系统kill具体使用方法是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。概念kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SI...
    99+
    2023-06-28
  • Linux安装nc命令的具体步骤是什么
    Linux安装nc命令的具体步骤是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。nc的全名是netcat,是一个功能强大的网络工具,其主要用途是建立和监听任...
    99+
    2023-06-28
  • linux后台执行命令&和nohup的具体使用方法
    当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每urXFSljRoK天的非负荷高峰时间段运行(例如凌晨)。为...
    99+
    2022-06-04
    linux & nohup linux 后台执行命令
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作