TCL 解析外部调用的参数列表
TCL parsing a list of arguments to an external call
我正在尝试通过 aldec riviera-pro
执行对 python 脚本的调用
我的调用是 python $python_app_name $python_app_args
但是我的 $python_app_args
作为单个字符串而不是多个字符串传递,导致 python 应用程序仅将其视为一个参数并且执行失败.
我试过我认为所有方法都以各种方式传递它,但结果相同。
我真的需要将每个参数放入一个变量中才能工作吗?
我也尝试过使用数组,但我一直收到
can't set "python_string_args(0)": variable isn't array
我的数组赋值代码如下
set python_string_args(0) "-gr"
set python_string_args(1) "-l"
set python_string_args(2) "-r sim"
set python_string_args(3) "-t config_arc_cnt_acc.cfg"
IE 我有解决方法 fx 我可以将它们分配给每个自己的值,或者我可以让 python 应用程序根据参数知识将字符串拆分成它的组件。
注意
riviera-pro中的python
命令调用安装在python/python34中的外部python程序,这与我从命令行执行脚本时的情况相同。
不知道你系统中的Tcl解释器是不是最新的。如果是,您应该可以使用
python $python_app_name {*}$python_app_args
将参数作为单独的字符串获取。 {*}
前缀是一个句法修饰符,它将列表中的项目拼接为单独的参数。示例:
list a {b c d} e
# -> {a {b c d} e}
list a {*}{b c d} e
# -> {a b c d e}
文档位于 Tcl 语法的手册页中,link 下面。
在旧版本中,这可能有效:
eval python $python_app_name $python_app_args
但这可能会对参数进行不希望的调整。尝试打印
puts [concat python $python_app_name $python_app_args]
看看这是否是一个合理的命令行。
您将无法将数组作为值传递,数组不能那样工作。
我正在尝试通过 aldec riviera-pro
执行对 python 脚本的调用我的调用是 python $python_app_name $python_app_args
但是我的 $python_app_args
作为单个字符串而不是多个字符串传递,导致 python 应用程序仅将其视为一个参数并且执行失败.
我试过我认为所有方法都以各种方式传递它,但结果相同。 我真的需要将每个参数放入一个变量中才能工作吗?
我也尝试过使用数组,但我一直收到
can't set "python_string_args(0)": variable isn't array
我的数组赋值代码如下
set python_string_args(0) "-gr"
set python_string_args(1) "-l"
set python_string_args(2) "-r sim"
set python_string_args(3) "-t config_arc_cnt_acc.cfg"
IE 我有解决方法 fx 我可以将它们分配给每个自己的值,或者我可以让 python 应用程序根据参数知识将字符串拆分成它的组件。
注意
riviera-pro中的python
命令调用安装在python/python34中的外部python程序,这与我从命令行执行脚本时的情况相同。
不知道你系统中的Tcl解释器是不是最新的。如果是,您应该可以使用
python $python_app_name {*}$python_app_args
将参数作为单独的字符串获取。 {*}
前缀是一个句法修饰符,它将列表中的项目拼接为单独的参数。示例:
list a {b c d} e
# -> {a {b c d} e}
list a {*}{b c d} e
# -> {a b c d e}
文档位于 Tcl 语法的手册页中,link 下面。
在旧版本中,这可能有效:
eval python $python_app_name $python_app_args
但这可能会对参数进行不希望的调整。尝试打印
puts [concat python $python_app_name $python_app_args]
看看这是否是一个合理的命令行。
您将无法将数组作为值传递,数组不能那样工作。