Передача аргументов из командной строки в tcl script

Вопрос:У меня есть TCL script, который имеет множество параметров, определенных как аргументы. Я намерен создать файл задания, где я могу выполнить .tcl script с различными комбинациями параметров без ручного вмешательства. Я имею в виду следующее: Файл задания (run.sh): ./main.tcl arg1 arg2 arg3 arg4 ./main.tcl arg1 arg3 arg5 Теперь я хочу иметь возможность передавать массив аргументов

Вопрос:

У меня есть 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 могут использоваться нормально. Таким образом, используя процесс, вы можете достичь того же.

Оцените статью
Добавить комментарий