【问题标题】:Script for repetitive command line execution [closed]用于重复命令行执行的脚本[关闭]
【发布时间】:2018-02-11 08:13:58
【问题描述】:

我需要连续运行数百个命令行参数。虽然,对于我执行的每个命令,我都需要更改设置文件(文本文件)。

例如我需要运行“./program --settingsFile=blah.txt”,但每次我都需要更改设置文件中的一行文本。

我可以使用哪种编程语言:

  • 读取包含我需要执行的命令的文件(.txt 文件)
  • 更改单独的设置文本文件
  • 执行命令并等待命令完成
  • 循环直到列表 完成

我对 shell 或 python 的了解不多,从我读到的这些似乎是实现这一目标的最简单方法?

提前致谢。

【问题讨论】:

  • 您希望它运行特定次数还是无限次?
  • 几乎任何编程语言都可以让你做到这一点。
  • 这并不重要。您可以为 bash 文件或 python 文件创建一个 cron 作业。如果它无限运行,您可以在后台运行一个进程,再次,bash 或 python...
  • 是的,他正在从上述两个脚本中得到最好的结果。

标签: python bash shell command-line


【解决方案1】:

我不知道你的代码是什么,但这是一个通用模板。

import subprocess
import os

while True: # this will make it run infinitely
    subprocess.run('path/to/program/file --settingsFile=blah.txt')
    settingsfile = open('path/to/settings/file', 'w+')
    settingsfilecontents = settingsfile.read()
    newtext = settingsfilecontents.replace('oldtext','newtext')
    settingsfile.write(newtext)
    settingsfile.close()

如果您不希望它无限运行,只需稍作修改即可。

import subprocess
import os
number = 100 #replace with times you want it to repeat
for i in range(number): # this will make it run number times
    subprocess.run('path/to/program/file --settingsFile=blah.txt')
    settingsfile = open('path/to/settings/file', 'w+')
    settingsfilecontents = settingsfile.read()
    newtext = settingsfilecontents.replace('oldtext','newtext')
    settingsfile.write(newtext)
    settingsfile.close()

【讨论】:

    【解决方案2】:

    您也可以使用 Python。

    我为您的问题步骤之一编写了示例,您可以使用并继续其他步骤。

    #Reading a file from command line
    import sys
    with open(sys.argv[1], 'r') as f:
        contents = f.read()
    print contents
    

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 2015-12-30
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多