运行程序 X 次

use*_*989 19 command-line

如何在终端中执行程序 X 次?

我读到我必须做一个 bin/bash txt,但我不知道如何执行这个 X 次。

Rad*_*anu 26

您可以使用xargsseq。一般来说:

seq nr_of_times_to_repeat | xargs -Iz command
Run Code Online (Sandbox Code Playgroud)

例如:

seq 10 | xargs -Iz xdotool click 1
Run Code Online (Sandbox Code Playgroud)

将执行该xdotool click 1命令 10 次。


Syl*_*eau 10

打开终端并使用以下bash命令:

for i in {1..5}; do xdotool click 1; done
Run Code Online (Sandbox Code Playgroud)

有点冗长和 1s 延迟:

for i in {1..5}; do echo click \#$i && xdotool click 1 && sleep 1; done
click #1
click #2
click #3
click #4
click #5
Run Code Online (Sandbox Code Playgroud)


Jac*_*ijm 5

这应该做:

#!/bin/bash

x=1
while [ $x -le 10 ]
do
  <command to run>
  x=$(( $x + 1 ))
done
Run Code Online (Sandbox Code Playgroud)

其中 10 是运行命令的次数

如果您需要稍作休息:

#!/bin/bash

x=1
while [ $x -le 10 ]
do
  <command to run>
  sleep 1
  x=$(( $x + 1 ))
done
Run Code Online (Sandbox Code Playgroud)

将脚本复制到一个空文件中,替换<command to run>为您的xdotool命令,另存为run_xdotool.sh,通过命令运行它:

sh /path/to/run_xdotool.sh
Run Code Online (Sandbox Code Playgroud)

或者,您可以使其可执行并简单地运行它

/path/to/run_xdotool.sh
Run Code Online (Sandbox Code Playgroud)

另一个解决方案:使用 xdotool 的内置重复选项

由于您提到使用它进行点击,最简单的方法可能是使用xdotool自己的内置重复选项。格式为:

xdotool click --delay <delay> --repeat <repeats> <button>
(delay in milliseconds between the clicks)
Run Code Online (Sandbox Code Playgroud)

要连续点击 10 次鼠标(按钮 1),中间一秒钟,命令是:

xdotool click --delay 1000 --repeat 10 1
Run Code Online (Sandbox Code Playgroud)


Ole*_*nge 5

如果你有 GNU Parallel 你可以运行:

seq 10 | parallel -N0 doit
Run Code Online (Sandbox Code Playgroud)

所有新计算机都有多核,但大多数程序本质上是串行的,因此不会使用多核。然而,许多任务是非常可并行化的:

  • 在多个文件上运行相同的程序
  • 对文件中的每一行运行相同的程序
  • 为文件中的每个块运行相同的程序

GNU Parallel 是一个通用的并行器,可以很容易地在同一台机器或您可以 ssh 访问的多台机器上并行运行作业。

如果您有 32 个不同的作业要在 4 个 CPU 上运行,一个直接的并行化方法是在每个 CPU 上运行 8 个作业:

简单的调度

GNU Parallel 会在完成后生成一个新进程 - 保持 CPU 处于活动状态,从而节省时间:

GNU 并行调度

安装

个人安装不需要 root 访问权限。这样做可以在 10 秒内完成:

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Run Code Online (Sandbox Code Playgroud)

有关其他安装选项,请参阅http://git.savannah.gnu.org/cgit/parallel.git/tree/README

了解更多

查看更多示例:http : //www.gnu.org/software/parallel/man.html

观看介绍视频:https : //www.youtube.com/playlist? list =PL284C9FF2488BC6D1

演练教程:http : //www.gnu.org/software/parallel/parallel_tutorial.html

注册电子邮件列表以获得支持:https : //lists.gnu.org/mailman/listinfo/parallel