#linux #parameters
#linux #параметры
Вопрос:
привет, я новичок в 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’ в командной строке выше непосредственно на числа, ошибки нет.
Как я могу это исправить?
Комментарии:
1. проверьте свою команду — вы поместили туда литералы «phys», «iq» и «rob», а не их фактические значения. Например,
--num_rob_entries=rob
следует заменить на--num_rob_entries=',rob,'
. Те же замены должны быть сделаны для двух других переменных.
Ответ №1:
Хм… Как вы думаете, как 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» не является целочисленным значением.
Комментарии:
1. Спасибо! Проблема была решена вашим методом!
2. @Sukey: если проблема была решена, вы должны принять ответ.