网站首页 > 基础教程 正文
#大有学问#
使用shell 脚本时,我们经常会碰到了循环执行太慢的情况。
这种情况下,可以使用多线程方式,以提高效率。
具体做法
使用 &+wait 达到多线程的效果
如果我们要执行一个睡眠(sleep命令)程序5次,每次等待3秒,共计耗时15秒,代码如下:
#/bin/bash
date #显示当前时间
for num in seq 1 5
do
{
echo "sleep 3 sec"
sleep 3
}
done
date #显示当前时间
输出结果:
2023年 03月 15日 星期三 14:12:30 CST
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
2023年 03月 15日 星期三 14:12:45 CST
#使用 &+wait,可以多线程执行
#/bin/bash
date
for num in seq 1 5
do
{
echo "sleep 3 sec"
sleep 3
}&
done
wait
date
输出结果:
2023年 03月 15日 星期三 14:14:30 CST
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
2023年 03月 15日 星期三 14:14:33 CST
这里&+wait形式会让循环体内的命令全部进入后台运行,其中使用 wait 是在等待上一批或上一个脚本执行完(即上一个的进程终止),再执行wait之后的命令。而&是把每次循环体命令挂在后台运行。
猜你喜欢
- 2025-04-07 自动脚本操作流程(自动脚本怎么做)
- 2025-04-07 Ubuntu系统存在严重漏洞,几句命令轻松攻破root权限
- 2025-04-07 redis实现分布式锁(redis实现分布式锁的原理)
- 2025-04-07 Linux系统移植之—uboot移植,你们要的uboot终于来了,堪称精品
- 2025-04-07 powershell 后台运行命令(如何在powershell运行程序)
- 2025-04-07 生产环境H200部署DeepSeek 671B 满血版实战(三):SGLang 安装详解
- 2025-04-07 OpenWrt 小白常用命令大全(openwrt操作命令)
- 2025-04-07 Thread.sleep(0):线程休眠0秒有什么意义?
- 2025-04-07 40 个简单又有效的 Linux Shell 脚本示例
- 2025-04-07 说一说那些只有DOTA老玩家们才知道的骚操作,还记得小鸟红杖吗
- 最近发表
-
- 自动脚本操作流程(自动脚本怎么做)
- Ubuntu系统存在严重漏洞,几句命令轻松攻破root权限
- redis实现分布式锁(redis实现分布式锁的原理)
- Linux系统移植之—uboot移植,你们要的uboot终于来了,堪称精品
- powershell 后台运行命令(如何在powershell运行程序)
- 生产环境H200部署DeepSeek 671B 满血版实战(三):SGLang 安装详解
- OpenWrt 小白常用命令大全(openwrt操作命令)
- Linux-shell脚本多线程实现(shell 多线程并发执行)
- Thread.sleep(0):线程休眠0秒有什么意义?
- 40 个简单又有效的 Linux Shell 脚本示例
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)