【问题标题】:How to execute a code n times from the terminal? [closed]如何从终端执行代码 n 次? [关闭]
【发布时间】:2019-08-24 00:03:02
【问题描述】:

我使用以下命令运行一个示例。

java -cp bin examples.generators.SimpleCircuitGenerator

此代码输出运行 SimpleCircuitGenerator 的时间。我想知道如何多次运行相同的代码。我怎样才能使用终端来做到这一点?我的目标是测量多次运行 SimpleCircuitGenerator 的时间。

【问题讨论】:

  • 这不是真正的 [java] 特定的,更像是操作系统的东西,或者你想用 java 编程吗?
  • 是的。我想要它在java中
  • 如果你想让一个程序来做,那么你需要编写一个程序。否则,它有点依赖于 O/S。在 Linux(或使用 Cygwin 的 Windows)上,我会使用 for 循环和 seq
  • 那么你不会多次运行java -cp ... 。要重复代码使用for 循环,要注册它的时间使用System.nanoTime() 或更好,使用JMH 之类的框架(不确定from the terminal
  • 用Java写一个循环,使用java processbuilder。

标签: java terminal


【解决方案1】:

创建一个 bash 文件 example.sh,将以下行放入其中并运行它 ./example.sh 。它将运行 10 次,每次运行都会打印一次。另请查看Print execution time of a shell command

#!/bin/sh

for i in {1..10}
do
    java -cp bin examples.generators.SimpleCircuitGenerator 
done

【讨论】:

    【解决方案2】:

    我认为最快的解决方案是让您通过脚本运行它。我假设您使用基于 Linux 的终端。打开文件并输入:

    #!/bin/bash
    # Basic until loop
    counter=1
    until [ $counter -gt 10 ]
    do
    java -cp bin examples.generators.SimpleCircuitGenerator
    ((counter++))
    done
    

    在这种情况下,它最多会运行 10 次。您可以根据需要对其进行修改。将文件另存为 name_of_file.sh 并运行它。

    【讨论】:

    • 太复杂了; for i in $(seq 1 10) 怎么了?
    【解决方案3】:
    FOR %A IN (1 2 3 4 5) DO java -cp bin examples.generators.SimpleCircuitGenerator
    

    【讨论】:

      【解决方案4】:

      您可以重复以下链接中提到的终端命令。

      http://www.mactricksandtips.com/2012/02/loop-repeat-terminal-commands.html

      但我建议您添加一个 for 循环并获取重复次数作为参数。因此,您可以根据需要多次运行该命令。

      【讨论】:

        【解决方案5】:

        您可以使用简单的bash 循环来处理类似这样的事情:
        for i in {1..10}; do java -cp bin examples.generators.SimpleCircuitGenerator; done.
        这可能会为您提供更多信息:How to run a command multiple times, using bash shell?

        【讨论】:

          【解决方案6】:

          您可以通过在 bash 中使用 for 循环来做到这一点:https://www.cyberciti.biz/faq/bsd-appleosx-linux-bash-shell-run-command-n-times/

          【讨论】:

            猜你喜欢
            • 2020-02-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-19
            • 2016-03-02
            • 2013-04-14
            • 2012-09-04
            • 2012-09-19
            • 2021-01-07
            相关资源
            最近更新 更多