我在期望脚本没有评估参数时遇到问题。 puts $ {file_id}块(显然简化)中的所有内容都放置在虚拟机上,稍后用于配置。您看到的块将相同的代码放入本地目录中,以查看是否正常工作。在打印虚拟服务器之前展开传递的参数
global env
set env(os1) [lindex $argv 0]
set env(scratch_repo) /tmp/yum.repo_[pid]
set file_id [ open ${env(scratch_repo)} "w"]
puts ${file_id} {
root_image=node-${env(os1)}
if {[string first r ${env(os1)}] == 0} {
create_node_byid 1 [string range ${env(os1)} 0 4]-64
} else {
create_node_byid 1 [string range ${env(os1)} 0 5]-64
}
}
不幸的是,日志文件看起来和上面一样。争论没有被正确取代,我无法弄清楚为什么。我试过使用常规变量,不同的语法来引用本地和全局变量,但没有运气让这个工作。有什么想法吗?
变量不会在tcl的'{...}'引号中被评估。 –
我试过使用$ env(os1),它仍然无法使用! – sirstancake