Вопрос:
У меня есть TCL script, который имеет множество параметров, определенных как аргументы. Я намерен создать файл задания, где я могу выполнить .tcl script с различными комбинациями параметров без ручного вмешательства.
Я имею в виду следующее:
Файл задания (run.sh):
./main.tcl arg1 arg2 arg3 arg4 ./main.tcl arg1 arg3 arg5
Теперь я хочу иметь возможность передавать массив аргументов командной строки “argv” для каждого запуска, упомянутого в run.sh, как массив в main.tcl script, так что параметры устанавливаются соответственно в script до выполнения.
Есть ли способ связать .sh script и .tcl script?
Лучший ответ:
Per онлайн-документ здесь:
Метод, по которому числа могут быть переданы и использованы script, заключается в следующем.
argc argv argv0
Все сценарии Tcl имеют доступ к трем предопределенным переменным. $ argc – число элементов аргументов, переданных в script. $ argv – список аргументов. $ argv0 – имя script.
Чтобы использовать аргументы, script можно переписать следующим образом.
if { $argc != 2 } { puts «The add.tcl script requires two numbers to be inputed.» puts «For example, tclsh add.tcl 2 5». puts «Please try again.» } else { puts [expr [lindex $argv 0] + [lindex $argv 1]] }
Ответ №1
В дополнение к вышеуказанному ответу я нашел следующее сообщение:
Для работы в QuestaSim/ModelSim/Quartus я следил за следующим ресурсом:
Обычно мы можем запускать сценарии .tcl с помощью команды source, но это по сути не обрабатывает такие аргументы, как базовые сценарии .tcl могут использоваться нормально. Таким образом, используя процесс, вы можете достичь того же.