zoukankan      html  css  js  c++  java
  • Using tcl with synopsys command

    Using tcl with synopsys command

    1. dc shell特有命令

    source	rename	history	exit
    

    2.dc shell支持的tcl cmd

    after exec history* open split
    append expr if package string
    array exit* incr pid subst
    binary fblocked info proc switch
    bgerror fconfigure interp puts tell
    break fcopy join pwd time
    catch file lappend read trace
    cd fileevent lindex regexp unset
    clock filename linsert regsub update
    close flush list rename* uplevel
    concat for llength return upvar
    continue foreach lrange scan variable
    encoding format lreplace seek vwait
    eof gets lsearch set while
    error glob lsort socket
    eval global namespace source*
    

    3.dc shell命令的使用

    1. 交互式:enter dc shell cmd
    2. 脚本:source script_file

    4.基本命令的使用

    1. 一条基本的命令通常是由cmd+arguments或是cmd+option+arguments
    2. 命令之间通过分号或换行符进行分隔
    3. 一条长命令可以在当前行尾处加进行分隔,使一条命令分布在不同行

    5.通配符的使用

    1. * :匹配任意字符
    2. ?:匹配单个字符

    6.大小写敏感

    1. cmd对字符是大小写敏感的

    7. 列出并重新运行先前输入的命令

    1. 使用history命令可以列出之前运行的命令(默认20条)
    2. history info number:列出之前number条执行的命令
    3. history redo number:重新执行event number对应的命令
    4. history redo -2:执行倒数两条命令
    5. !!:重新执行最后一条命令
    6. !6:执行event number为6的命令

    8.命令状态

    1. 命令状态是命令的返回值

    2. 命令返回值重新设置

      • > :重定向符号将命令结果重定向到一个文件中
      • 内置重定向命令:redirect - tee file_name {命令变量};命令结果重定向到文件并打印到屏幕;

    9.echo/puts打印

    • echo similar to bash
    • puts similar to tcl

    10.运行脚本

    1. source script_name.tcl:加载并执行tcl脚本
    2. source -echo -verbose script_name.tcl:显示执行的命令及命令的结果
    3. source -echo -verbose script_name.tcl > filename:命令及结果重定向到一个文件

    11.字符串

    cmd describe
    format 格式化字符串
    regexp 字符串内索引
    regsub 正则替换
    scan 字符串内字段赋值给变量
    string 字符串操作函数
    subst 执行替换

    12.列表

    1. 语法格式

      set listname “value1 value2 ... valuen”
      set listname [list value1 value2 ... valuen]
      set listname {value1 value2 ... valuen}
      set listname [list {value1 value2} {value3 value4} valuen]
      
    2. example:

      image.png

    3. list command:

      cmd describe
      concat 连接列表并返回一个新的列表。
      join 将一个列表中的元素连接成一个字符串
      lappend 将元素追加到一个列表中
      lindex 从一个列表中返回一个特定的元素
      linsert 列表中插入一个元素
      list 返回一个由其参数形成的列表
      llength 列表长度
      lrange 列表中提取部分元素
      lreplace 列表替换元素
      lsearch 列表查找元素
      lsort 列表排序
      split 字符串分割为列表

    13.数组

    1. 语法格式

      set arrayname(index) value
      array set arrayname [list index0 value0 index1 value1 indexn valuen]
      
    2. array command

      cmd describe
      array size 返回数组大小
      array names 返回数组索引值

    14.if command

    1. 语法格式

      # ======================================== #
      if {condition} {
      	commands
      }
      # ======================================== #
      if {commands} {
      	commands
      } else {
      	commands
      }
      # ======================================== #
      if {commands} {
      	commands
      } elseif {condition} {
      	commands
      } else {
      	commands
      }
      # ======================================== #
      

    15.while command

    1. 语法格式

      while {condition} {
      	commands
      }
      

    16. for command

    1. 语法格式

      for {initial condition} {termination condition} {reinit condition} {
      	commands
      }
      

    17.foreach command

    1. 语法格式

      foreach var $list {
      	commands
      }
      

    18.break/continue

    1. break:跳出整个循环块
    2. continue:跳出当前循环条件,进入下一轮循环

    19.switch command

    1. 语法格式

      switch var {
      	pattern1 {commands1}
      	pattern2 {commands2}
      	...
      	default  {commands_default}
      }
      

    20.文件操作

    1. cd/pwd same as linux command

    2. 文件命令

      cmd describe
      file dirname fname 返回文件路径
      file exist fname 如果文件名存在,返回1,否则返回0
      file extension fname 返回文件名的扩展部分
      file isdirectory fname 如果文件名是一个目录,返回1,否则返回0
      file isfile fname 如果文件名是一个文件,返回1,否则返回0
      file readable fname 如果文件是可读的,返回1,否则返回0
      file writable fname 如果文件是可写的,返回1,否则返回0
      file rootname fname 返回文件名的名称部分
      file size fname 返回一个文件的大小,单位是字节。
      file tail fname 从文件路径字符串中返回文件名
    3. open

      open fname mode
      
      cmd describe
      r 打开文件仅用于阅读,该文件必须已经存在,默认访问模式。
      r+ 打开文件进行读写;该文件必须已经存在。
      w 打开文件,仅用于写入,如果该文件存在,则截断它。如果该文件不存在,则创建它
      w+ 打开文件进行读写。如果该文件存在,则截断它。如果文件不存在,则创建它
      a 打开文件仅用于写入;新的数据被追加到文件中。该文件必须已经存在
      a+ 打开文件进行读写。如果该文件不存在,则创建 它。新的数据被追加到该文件中
    4. close

      close $fileID
      
      set files [open main.tcl w+]
      close $files
      
    5. flush

      flush $fileID
      
      #使用flush命令来强制将缓冲输出写入文件
      

    21.gets/puts

    1. gets

      #使用gets命令从一个文件中读取一个单行数据
      
      get $fileID var
      
      #$fid参数是文件的ID,该文件是通过打开命令获得的;var参数是接收数据行的变量。var参数是接收该行数据的变量。
      
    2. puts

      #puts命令,向文件中写入单行
      
      puts $fileID var
      
      #参数$fid是文件的ID,是通过打开命令获得的;参数var包含要写入的数据。var参数包含要写入的数据。puts命令在输出数据前在其上添加一个新行字符,然后再输出数据
      
  • 相关阅读:
    trim标签:可以自定义字符串的截取规则
    登录框(用获取value值方法)
    C++在ARM Linux下的交叉编译
    happybase导入报错:thriftpy.parser.exc.ThriftParserError: ThriftPy does not support generating module with path in protocol 'c'
    Nginx报错总结
    ubuntu安装Nginx
    mqtt在debian strench 9 docker环境下的搭建
    evokly/kafka-connect-mqtt 不支持kafka集群部署
    树莓派mqtt安装
    kafka和mqtt的区别和联系
  • 原文地址:https://www.cnblogs.com/movit/p/14811489.html
Copyright © 2011-2022 走看看