已复制
全屏展示
复制代码

bash并行执行多个命令

· 1 min read

使用场景

在脚本中需要并发执行多个命令,比如,需要同时登录到 10 台机器,并在 10 台机器是分别格式化磁盘。格式化磁盘是一个耗时的操作,如果顺序执行的话,会非常耗时。所以可以使用后台执行,使用 wait 命令等待所有的后台命令返回。

解决方法

当有多个任务时需要同时运行时,可按照如下格式编写。

#!/bin/bash

func1(){
    sleep 3
    echo "$(date) func1" | tee /tmp/func1
}

func2(){
    sleep 3
    echo "$(date) func2" | tee /tmp/func2
}

func3(){
    sleep 3
    echo "$(date) func3" | tee /tmp/func3
}

func1 &
func2 &
func3 &
wait
🔗

文章推荐