bash wait命令

wait是一个等待指定任务完成的命令并返回wait命令的退出状态。

由于wait命令影响当前shell执行环境,因此它在大多数shell中实现为内置命令。

在本文中,我们将探讨Bash内commandingwait命令。

Bashwait什么意思英语 wait命令

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

wait [options] ID

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

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

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

wait 7654

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

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

rsync -a /home /tmp/home &

shell作业ID(括waiting是什么意思号括起来)和进程ID将显示在终端上:

[2] 54377

等待作业,运行wait命令后跟Jlinux重启命令obspec:

wait %2

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

waicommand_blockt -n 45432 54346 76573

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

wait -p job_id -n 4linux系统5432 54346 76573

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

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

linux系统安装

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

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

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

让我们按行解释代码行:

  • 第一行称为shebang,它告诉操作系统使用哪个解释器来linux解析文件的wait的现在分词其余部分。
  • 使用sleep命令来模拟一个耗时的后台进程。
  • $!是Bash内部变量,用于在后台存储上一次运行的进程的PID。 在此示例中,这是sleep命令的PID。 我们将PID存command储在变量(process_id)中。
  • 打印PID号。
  • PID传递给waitwaitresslinux令,该命令等待直到睡眠命令完成。

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

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

PID: 36353
Exit status: 0

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

#!/commandsbin/bawait怎么读sh
sleep 3 &
sleep 30 &
sleep 5 &
wait -n
ewaitresscho "First job completed."
wacommand翻译it
echo "All jobs completed."

执行脚本时,它会linux操作系统基础知识产生3个后台进程。 wait -n等待直到完command翻译成第一个作业并打印echo语句linux中文乱码视频waitwait什么意思英语待所有后台任务完成。

first job completed
all jobs colinuxmpleted

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

sleep 3600 &
[1] 46671

等待command是什么意思中文这个进程:

wait 46671

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

kill -STOP 466wait怎么读71

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

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

sleep 3600 &
wait -f 46671

停止另一个终端的进程:

kill -STOP 46671

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

结论

wait命令等待指定的进程完成command是什么意思中文并返回进程的退出代码。

如果您有任何问题或反馈,请随时留下评论。