百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Bash技巧:在脚本中并发执行多个命令,等待命令执行结束

liuian 2024-12-16 14:47 150 浏览


在 Linux bash shell 中,可以使用控制操作符 & 让命令在后台运行,然后使用 wait 内置命令等待任务完成。

控制操作符 &

查看 man bash 对控制操作符 & 的说明如下:

If a command is terminated by the control operator &, the shell executes the command in the background in a subshell.
The shell does not wait for the command to finish, and the return status is 0.

即,当要执行的命令以 & 结尾时,这个命令会在后台子 shell 执行。
当前 shell 不会等待这个命令执行完成,可以继续执行下一个命令。

即,某个命令执行耗时较久时,如果不以 & 结尾,当前 shell 会等待该命令执行完成,才能执行下一个命令。
而以 & 结尾后,这个命令被放到后台子 shell 执行,当前 shell 可以继续执行下一个命令。

wait 内置命令

查看 help wait 对该命令的说明如下:

wait: wait [-n] [id ...]
Wait for job completion and return exit status.

Waits for each process identified by an ID, which may be a process ID or a job specification, and reports its termination status.


If ID is not given, waits for all currently active child processes, and the return status is zero.
If ID is a a job specification, waits for all processes in that job's pipeline.


If the -n option is supplied, waits for the next job to terminate and returns its exit status.

即,wait 命令可以等待指定 PID 的进程执行完成。
如果不提供任何参数,则等待当前激活的所有子进程执行完成。

当有多个耗时操作可以并发执行,且这些操作都执行完成后,再进行下一步操作,就可以使用 wait 命令来等待这些操作执行完成。

类似于下面的语句:

command1 &

command2 &

wait

command1 & 命令用 & 指定在后台执行 command1 命令。
如果执行 command1 命令需要较长时间,不加 & 的话,需要等待 command1 执行完成,才能执行下一个命令。
加了 & 后,在后台执行 command1 命令,可以继续执行下一个命令。

类似的,command2 & 也是在后台执行 command2 命令。

即,通过 & 在后台并发执行 command1、command2 命令,可以更好地利用 CPU 并发能力,加快执行速度。
如果先等待 command1 执行完成,再来执行 command2 命令,可能会比较慢。

之后执行 wait 命令,没有提供任何参数,会等待所有激活的的子进程执行完成,在后台执行的子进程也是激活状态。
这里会等待 command1、command2 都执行完成。

这里的 command1、command2 只是举例用的名称,实际测试时要换成可以执行的命令。

相关推荐

全国中高风险地区最新名单(全国中高风险地区最新名单7.29)

浦东新区康桥镇环桥路1488弄小区,黄浦区南京东路街道西藏中路180号高盛商厦5楼,静安区共和新路街道沪太路785号B座501西区天空音乐量贩式KTV,松江区小昆山镇平原街86弄平原新村,虹口区北外滩...

爱吾游戏宝盒破解版(爱吾游戏宝盒破解版2023最新版本)

爱吾游戏宝盒闪退有以下原因:可能是游戏与手机系统不兼容,卸载游戏后重新安装最新版本,或者升级手机系统,2.有的游戏程序会与其它正在开启的应用有冲突,将后台运行的应用全部关闭再重新启动游戏就可以了要降低...

win8激活码免费领取(windows8激活码免费)

1、首先我们下载一个能够永久激活win8系统的KMSpico激活工具。2、然后将“KMSpico_setup”双击打开进行安装。3、安装目录随便选择就行了,安装完成之后找到EXE文件,以管理员身份运行...

微信安装官方正版(2025版微信官方正版)

必须先安装微信,如果自己的微信号和密码忘了可以通过绑定的手机号码进行找回,操作步骤如下:1、在手机上点击打开微信,来到登陆窗口,点击”找回密码“。2、在找回密码界面,选择”通过手机号码找回”,然后...

大白菜u盘启动怎么装系统(大白菜u盘启动盘怎么装系统win10)

  1、根据上面的教程制作好大白菜pe启动盘,然后将下载的操作系统iso文件直接复制到U盘的GHO目录下;  2、在需要装系统的电脑上插入U盘,重启后不停按F12、F11、Esc等快捷键打开启动菜单,...

360软件管家使用方法(360软件管家使用方法视频)

步骤:1、只要在提示条上点击“安全保存”按钮,即可方便快捷地将网站的帐号密码保存下来,且网站会出现在登录管家主面板的网站列表中。2、登录360安全浏览器后可使用云加密的网站列表,帐号密码安全性进一步提...

originos下载(originos官方下载地址)

已经在官网上进行下载。originos3.0从目前已经在vivo手机的官网中可以进行下载。先登录进vivo官网,然后再找到系统的专区,找到最新版本的originos3.0,然后选择你手机的型号。进行...

文件夹怎样加密码保护(文件夹如何加密码锁)

1.鼠标右键点击电脑桌面里面要加密的文件或者文件夹,选择“属性”;2.在“常规”下方,选择“高级”选项;3.之后就会继续弹出一个窗口,在压缩或加密属性下,选择“加密内容以便保护数据”即可。.鼠标右键...

office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)
  • office永久激活码密钥2010(office2010永久激活版)
手机总是自动关机是怎么回事
手机总是自动关机是怎么回事

手机会动不动就关机,可能是手机的电池材质已经开始有变化了,或者在寒冷的地方温度过低也会造成自动关机的,也有可能是因为手机被摔伤过,从手机内的软件破坏了,就会自动关机。造成智能手机自动关机的原因较多,常见的有:误操作开启了定时关机功能;环境温...

2025-12-24 00:55 liuian

文件夹变成exe文件还原(文件夹变成exe后缀)
  • 文件夹变成exe文件还原(文件夹变成exe后缀)
  • 文件夹变成exe文件还原(文件夹变成exe后缀)
  • 文件夹变成exe文件还原(文件夹变成exe后缀)
  • 文件夹变成exe文件还原(文件夹变成exe后缀)
下载gho的网站(ghost官网下载地址)

非原版系统的话,去winos里面下载比较靠谱一点https://www.winos.me/

联想win7下载链接(联想win7oem原版下载)

如果你想在联想小新win7上下载AMD软件,首先要确定你要下载的是哪款软件。然后,你可以前往AMD官方网站,在网站上搜索该软件并下载。在下载完成后,双击安装该软件即可。另外,你也可以通过第三方软件下载...

三星笔记本电脑售后服务维修中心

您可以通过以下方式查询附近的三星售后服务点:访问三星官方网站,在网站首页选择“售后服务”选项,然后选择“售后服务网点查询”,在弹出的页面中选择所在省份和城市,即可查询附近的售后服务网点。在手机应用商店...

电脑重装系统后没有声音怎么解决

电脑重装系统后没有声音,可能是声卡驱动未安装、声卡驱动不兼容或者声音相关服务未开启等原因。解决方法可以尝试重新安装声卡驱动、更新驱动程序软件或者打开声音相关设置。如果问题仍然存在,建议寻求专业人士的...