首页 > 解决方案 > 使用不同的参数重新运行相同的命令

问题描述

你好我是linux的初学者。这是我想用不同的参数运行的命令:

'$GEM5/build/ARM/gem5.opt --outdir="Outputs" hw4config.py -c $GEM5/../test_progs/daxpy/daxpy_arm_big --cpu-type="DerivO3CPU" --caches --#l2cache --num_phys_float_regs=phys --num_rob_entries=rob --num_iq_entries=iq'

我希望参数“phys”、“rob”和“iq”随着步长的平方而变化。这是我的python脚本:

import os
phys = 256
rob = 4
iq = 4
i = 1
while phys <= 4096:
    rob = 4
    while rob <= 256:
     iq = 4
     while iq <= 256:
         cmd = '$GEM5/build/ARM/gem5.opt --outdir="Outputs" hw4config.py -c $GEM5/../test_progs/daxpy/daxpy_arm_big --cpu-type="DerivO3CPU" --caches --#l2cache --num_phys_float_regs=phys --num_rob_entries=rob --num_iq_entries=iq'
         os.system(cmd)
         iq *= 2
         i += 1
     rob *= 2
    phys *= 2

当我在终端中运行此 python 文件时,invalid integer value 'phys'出现错误。然后我直接把上面命令行中的那些'phys','rob','iq'参数改成数字,没有错误。我该如何解决?

标签: linuxparameters

解决方案


嗯......你认为 Python 可以如何设计你的想法?

在你的cmd = ...陈述中没有替代品。

如果您的 Python 足够新(3.5+),您可以使用非常相似的行:

cmd = f'$GEM5/build/ARM/gem5.opt --outdir="Outputs" hw4config.py -c $GEM5/../test_progs/daxpy/daxpy_arm_big --cpu-type="DerivO3CPU" --caches --#l2cache --num_phys_float_regs={phys} --num_rob_entries={rob} --num_iq_entries={iq}'

否则,您将需要求助于其他格式化方法。

您的线路按原样将尝试提供“--num_phys_float_regs=phys”(字面意思)参数,并且您的程序正确地抱怨“phys”不是整数值。


推荐阅读