在 for 循环中使用 bash wait [重复]

2024-03-10

(我已经搜索过并期望以前有人问过这个问题,但找不到类似的问题,尽管有很多类似的问题)

我希望这个 for 循环在 3 个不同的线程/进程中运行,并且wait似乎是正确的命令

for file in 1.txt 2.txt 3.text 4.txt 5.txt
        do something lengthy &
        i=$((i + 1))
        wait $!
done

但我猜这个构造只启动一个线程,然后等到它完成后再启动下一个线程。我可以放置wait在循环之外但是我该怎么办

  1. 访问pid?
  2. 将其限制为 3 个线程?

The jobsbuiltin 可以列出当前正在运行的后台作业,因此您可以使用它来限制创建的数量。要将您的工作限制为三项,请尝试以下操作:

for file in 1.txt 2.txt 3.txt 4.txt 5.txt; do
  if [ $(jobs -r | wc -l) -ge 3 ]; then
    wait $(jobs -r -p | head -1)
  fi

  # Start a slow background job here:
  (echo Begin processing $file; sleep 10; echo Done with $file)&
done
wait # wait for the last jobs to finish
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 for 循环中使用 bash wait [重复] 的相关文章

  • 如何使用 docker ENTRYPOINT 与 shell 脚本文件组合参数

    我编写 shell 脚本文件并将其与 docker ENTRYPOINT 一起使用 但是当我运行 docker image 时 由于入口点代码行 它只是停止而没有任何错误日志 我的 Dockerfile FROM ubuntu 16 04
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • 获取最新远程提交的 SHA1 [重复]

    这个问题在这里已经有答案了 可能的重复 git bash 如何检查是否有新的提交可用 https stackoverflow com questions 6006759 git bash how to check if theres a n
  • 比较两个文件的单列

    我有两个文件 每个文件都有两列 并用空格分隔 我想找到两个文件中第 2 列不相同的行 并将它们输出到第三个文件 file A 1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 BBBBBBBBBBBBBBBBBBBBBB
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代
  • 在 bash 脚本中使用源时出现“源:未找到”错误

    我正在尝试编写 我认为的 一个简单的 bash 脚本 它将 运行 virtualenv 以 1 美元创建一个新环境 激活虚拟环境 做更多的事情 安装 django 将 django admin py 添加到 virtualenv 的路径等
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • bash 脚本抱怨文件名太长

    所以我有一个脚本可以执行此操作 jq 是命令行 JSON 处理器 echo Getting LB Node IDs echo LB STATUS jq loadBalancer nodes id 最后一行的输出是 1 2 3 但是当我尝试将
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • 如何正确使用fork、exec、wait

    我正在编写的 shell 需要执行用户提供给它的程序 这是我的程序的非常简短的简化版本 int main pid t pid getpid this is the parents pid char user input NULL size
  • 在 bash 脚本中检测鼠标点击

    我想知道如何在后台运行 bash 脚本 每当用户单击鼠标时该脚本都会执行某些操作 即运行脚本或命令或其他任何内容 即使终端关闭 我也希望它继续运行 有任何想法吗 谢谢 如果您使用的是X11 您可以尝试xdotool捕获鼠标事件 它会是这样的
  • Bash:单行命令以与 grep 命令相反的状态退出?

    如何减少以下 bash 脚本 grep P STATUS Perfect recess txt exit 1 exit 0 看起来我应该能够用一个命令来完成它 但我这里总共有 3 个命令 我的程序应该 阅读课间休息 txt 如果它包含 ST
  • Rails 4.1 环境变量未重新加载

    我创建了一个application yml文件在配置目录中并添加了一些键值对 即AWS REGION us east 1 我还添加了以下内容application rb读取文件并更新 ENV 哈希 if Rails env developm
  • 为使用 SSH.NET SshClient.CreateShellStream 执行的命令 (sudo/su) 提供子命令

    我正在尝试使用 Renci SSH NET 从 C Web 应用程序连接到远程 Linux 服务器并执行 shell 脚本 我想一个接一个地运行脚本 但不知道如何运行脚本并读取输出并将其存储在标签中 我已经尝试了下面的代码 但无法一行接一行
  • 设置 git 别名,但调用它会给出“找不到命令”

    我想在 git 中设置一个别名来计算存储库中的总行数 因此我进入 Git Bash 并输入以下内容 git config global alias linecount ls files z xargs 0 wc l 我输入命令后 没有出现错
  • 如何使用 UNIX shell 脚本删除平面文件的页眉和页脚记录?

    我有一个平面文件 如下所示 如何使用 UNIX shell 脚本从文件中删除页眉和页脚并重写同一文件 9 20050427 HEADER RECORD 0000000 00000 000000000 123456 00 654321 DAT
  • 在 macOS 上使用 find 时出现“非法选项”错误

    我试图列出末尾仅带有字母 R 的文件 我用了find在 macOS 终端中如下所示 find type f name R 但我收到消息说illegal option t 第一个参数find是它应该开始寻找的路径 路径 表示当前目录 find
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • Bash 中单行 while 循环的语法

    我无法找到分号和 或大括号的正确组合 我想这样做 但作为命令行中的一句 while 1 do foo sleep 2 done while true do foo sleep 2 done 顺便说一句 如果您在命令提示符下将其输入为多行 如

随机推荐

  • Gradle 构建中 dexOptions 中 jumboMode 的用途是什么?

    根据这个帖子 https stackoverflow com a 24224385 1176435它允许 dex 文件中包含更多数量的字符串 但我不太明白它的含义以及对构建的影响 Jumbo 模式与可以引用的字符串数量有关 一个 DEX 文
  • 从 IndexedSeq[DataFrame] 转换为 DataFrame?

    新手问题 我尝试向现有 DataFrame 添加列 我正在使用 Spark 1 4 1 import sqlContext implicits case class Test rule Int val test sc parallelize
  • 从数据框中删除特殊字符和字母数字的简单方法

    我有一个大型数据集 其中有 x 行和 y 列 其中一列为单词和一些不需要的数据 不需要的数据没有特定的模式 因此我发现很难将其从数据框中删除 nonhashtag want better than Dhabi United Arab Emi
  • Cassandra 使用 IN 运算符在聚类列中更新和删除

    这是我的桌子 CREATE TABLE quorum omg id int a int b text c text PRIMARY KEY id a b WITH CLUSTERING ORDER BY b DESC 当我使用 IN 运算符
  • 为什么使用 OR 条件而不是 Union 会导致性能问题

    您好 我在 SP 中有以下查询 CrmContactId 是 SP 的参数 Select distinct A PolicyBusinessId A PolicyDetailId from TPolicyBusiness A inner j
  • F# 将列表转换为树

    我有一个元组 int string 列表 其中 int 是级别 string 是名称 let src 0 root 1 a 2 a1 2 a2 1 b 2 b1 3 b11 2 b2 我需要将其转换为以下内容 let expectingTr
  • 是否可以用公式读取Excel单元格值?

    在我的以下代码中 c4 的值为零 C4 单元格的公式为 SUM C2 C3 EPPlus能够读取带有公式的单元格吗 为什么 c4 被设置为零而不是 12 using var package new ExcelPackage existing
  • Firestore collection.get() 完成操作后返回值

    我正在运行类似于问题的代码这个问题 https stackoverflow com questions 46706433 firebase firestore get data from collection除了 我从每个文档中获取数组并将
  • 如何在android中获取相机拍摄的最后一张图像? [复制]

    这个问题在这里已经有答案了 我的目的不是拍照然后将其保存到 SD 卡 获取链接等等 该图像已使用 Android 中的原始相机应用程序拍摄 我所需要的就是如何获得相对于 SD 卡的图像路径 例如 模拟 0 sdcard DCIM 100AN
  • 在 ASP.Net MVC 视图中显示是/否而不是复选框

    我对 ASP Net MVC 非常陌生 我创建了一个从模型填充的视图 我正在为模型中的每个项目创建一行 以显示模型项目的属性 属性 其中一个成员是 bool 名称是 Staged 在视图中 我想将其显示为 是 如果为真 或 否 如果为假 用
  • 从 Apache Camel 内的 JSON 主体访问数据

    我正在使用一个 API 它基本上允许文件系统的导航 我正在尝试通过 API 从返回的 JSON 中访问数据 以便对其执行功能 下面是我使用访问 API 的代码 我尝试使用 unmarshal 来 将返回的 JSON 转换为 Map from
  • 在 Mac 上调试 php?

    想知道在本地计算机上调试 PHP 的最佳方法是什么 我在 mac os 10 5 上使用 MAMP 谢谢 帕特里克 Using xdebug http xdebug org 是一个好的开始 下载软件包并按照其中的说明进行操作INSTALL文
  • JPA双向关系-无限循环/循环引用

    我有双向关系 Entity Table name facility public class Facility implements Serializable Id GeneratedValue private Long id OneToM
  • 具有重复值和后缀的列表

    我有一个清单 a a a b c 并且需要使用后缀重复一些值 ind这样添加 顺序很重要 a a ind b b ind c c ind I tried b x x ind for x in a c item for sublist in
  • python中的Turtle模块未导入[重复]

    这个问题在这里已经有答案了 这是我第一次在 python 中使用turtle模块 但我似乎无法导入它 这是我的代码 from turtle import pen1 Pen pen2 Pen pen1 screen bgcolour 2928
  • 将重复项移动到已排序数组的末尾

    我在一次采访中被问到这个问题 有一个包含重复项的已排序数组 目标是首先返回具有唯一元素的数组 并在最后返回重复的元素并保持顺序 例如 1 1 2 3 4 4 5 应该成为 1 2 3 4 5 1 4 我能够用额外的空间 O n 空间 和线性
  • 在 python3 中使用用户设置的密码进行正确的数据加密

    我一直在寻找合适的数据加密库 用python好久了 今天又需要了 不行 找到任何东西 那么有什么方法可以使用 用户设置的密码 如果我发现一些通常不安全的东西 如果我找到一个好的解决方案 它不支持用户设置密码 这意味着我被困住了 有什么办法吗
  • 在代码片段库中添加代码片段 (Xcode 10)

    最近我在使用的时候Xcode 10 测试版 3 我尝试过了制作一个代码片段并将其添加到代码片段库中 But the 由于代码片段库在 Xcode 10 中分离 因此无法进行拖放 并在我单击代码时隐藏 如何在 Xcode 10 的代码片段库中
  • yocto 中图像版本控制的最佳方法

    在 Yocto 中维护映像版本的最佳方法是什么 我的意思是假设我们构建一个图像并将其提供给客户 将来我们会向客户提供错误修复 我们如何知道客户正在使用哪个版本的 yocto 图像 有没有任何标准方法可以实现这一点 谢谢你的时间 赞赏你的努力
  • 在 for 循环中使用 bash wait [重复]

    这个问题在这里已经有答案了 我已经搜索过并期望以前有人问过这个问题 但找不到类似的问题 尽管有很多类似的问题 我希望这个 for 循环在 3 个不同的线程 进程中运行 并且wait似乎是正确的命令 for file in 1 txt 2 t