tcl - 如何使用幽灵运行多个sp文件
问题描述
我有一堆.sp
需要用 Cadence Spectre 模拟的文件。而不是run spectre
——
run spectre 1.sp->exit->run spectre 2.sp->exit->...
- Spectre 中是否有某种批处理模式,以便我可以启动 Spectre 一次并按顺序执行这些任务(持有 Spectre 并运行下一个任务)?我怎样才能做到这一点?
我需要这个,因为每次启动 Spectre 时都需要检查许可证并做其他事情,这会浪费不必要的时间。
提前致谢。
错误信息:
invalid command name "if{!0}"
while executing
"if{![eof $log]} {
puts [gets $log]
} else {
close $log
incr event_flag
}"
(procedure "GetData" line 3)
invoked from within
"GetData file3"
can't wait for variable "event_flag": would wait forever
while executing
解决方案
您可以在工具交互模式下使用 open 命令
#!/bin/sh
# \
exec tclsh "$0" ${1+"$@"}
set event_flag 0
proc GetData {log} {
global event_flag
if {![eof $log]} {
puts [gets $log]
} else {
close $log
incr event_flag
}
}
# Run the following in loop
set log [open "|spectre 1.sp"]
fconfigure $log -blocking 0
fileevent $log readable [ list GetData $log ]
vwait event_flag
推荐阅读
- java - 如何让 Log4J2 在 JBoss EAP 6.4 中工作
- android - 应用程序中检测到 JNI 错误:调用 JNI NewGlobalRef 时出现未决异常 java.lang.ClassNotFoundException:
- ruby-on-rails - Rails 分组集合选择值
- database - 如何使用 shell 脚本将 HiveQL 查询的结果输出到 CSV?
- xcode - Appstore 无法识别从 xcode 上的同一帐户生成的项目的捆绑包 ID
- kubernetes - Kubernetes Pod 正在将状态从正在运行更改为已完成,我该如何防止这种情况
- python - 带有辅助字段的 Django 模型字段
- c# - 在 C# 中接受 SOAP 1.2 的文本/xml
- sql-server - 执行到没有列的临时表中,因为它们是动态的
- xamarin - 在 Xamarin Forms 中将日期时间保存到数据库