重复命令行执行的脚本

时间:2017-09-02 13:13:57

标签: python bash shell command-line

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

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

允许我使用哪种编程语言:

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

我对shell或python知之甚少,从我读到的这些看起来似乎是实现这一目标的最简单方法?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您也可以使用Python。

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

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

答案 1 :(得分:0)

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

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()