将命令输出重定向到文件

redirect command output to a file

   set fp_results [open "connectivity.txt" a+]
   set my_nets [get_nets *user given nets*]
   foreach_in_collection net $my_nets {
   set my_net [get_object_name $net]
   set cmd "check_lvs -nets $my_net -checks open -open_reporting bounding_box -max_errors 0"
   puts $fp_results "checking for: $my_net"
   puts $fp_results "eval $cmd"
}
close $fp_results

这里给出了一个 tcl 代码块,它检查给定的网络在 ICcompiler2(ICC2) 中是否打开 shell。 eval 命令 returns 要么 1/0 取决于网络的开放状态。 所以 0/1 的值被重定向到文件。在 icc2 shell 中单独评估“eval $cmd”会报告所有详细信息(坐标等)。如何将“eval $cmd”的完整细节重定向到文件? 上面的行 (puts $fp_results "eval $cmd") 只是将 1/0 重定向到 file.

这是 ICC2,这意味着您可以使用 Synopsys 在其工具中包含的 redirect 命令。

fc_shell> man redirect
2.  Synopsys Commands                                        Command Reference
                                   redirect

NAME
       redirect
              Redirects the output of a command to a file.

SYNTAX
       string redirect
       [-append] [-tee] [-file | -variable | -channel] [-compress]
       [-bg]
       [-max_cores number_of_cores]
       target
       {command_string}

   Data Types
       number_of_cores  integer
       target           string
       command_string   string

您可以将标准输出重定向到文件名,而不是使用 puts $fp

set my_nets [get_nets *user given nets*]

redirect -file "connectivity.txt" {
  foreach_in_collection net $my_nets {
   set my_net [get_object_name $net]
   set cmd "check_lvs -nets $my_net -checks open -open_reporting bounding_box -max_errors 0"
   puts "checking for: $my_net"
   eval $cmd
  }
}