gpt4 book ai didi

linux - 并行运行脚本命令

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:44:25 25 4
gpt4 key购买 nike

我有一个 bash 脚本,我需要在上面并行运行两个命令

例如,我正在执行 npm install 命令,这需要一些时间(20 -50 秒)

然后我依次在两个不同的文件夹上运行它,第一个 npm install 在 books 文件夹上,第二个用于订单文件夹,有没有办法在 shell 脚本中并行运行两者?

例如假设脚本如下:

#!/usr/bin/env bash

dir=$(pwd)

cd $tmpDir/books/

npm install

grunt

npm prune production
cd $tmpDir/orders/

npm install

grunt

npm prune production

最佳答案

您可以使用 & 在后台运行进程,例如:

#!/bin/sh

cd $HOME/project/books/
npm install &

cd $HOME/project/orders/
npm install &

# if want to wait for the processes to finish
wait

要运行并等待嵌套/多个进程,您可以使用子 shell () 例如:

#!/bin/sh

(sleep 10 && echo 10 && sleep 1 && echo 1) &

cd $HOME/project/books/
(npm install && grunt && npm prune production ) &

cd $HOME/project/orders/
(npm install && grunt && npm prune production ) &

# waiting ...
wait

在这种情况下,请注意命令在 () 中并使用 && 这意味着如果左侧大小成功(退出0) 例如:

(sleep 10 && echo 10 && sleep 1 && echo 1) &
  • 它创建一个子 shell,将内容放在 ()
  • 之间
  • 运行 sleep 10 如果成功 && 然后运行 ​​echo 10 如果成功 && 然后运行 ​​sleep 1 如果成功 && 然后运行 ​​echo 1
  • 通过以 & 结尾的命令在后台运行所有这些

关于linux - 并行运行脚本命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50723174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com