• tcl脚本


    tcl,全名tool command language,是一种通用的工具语言。

      1)每个命令之间,通过换行符或者分号隔开;

      2)tcl的每个命令包含一个或者多个单词,默认第一个单词表示命令,第二个单词表示参数,

          单词之间必须同空格或者tab键隔开;

      3)tcl解释器的执行过程,分析阶段,对单词的拆分,同时进行必要的置换;

                   执行阶段,检查命令有效性,启动c/c++解释器,传递之后的单词作为参数,执行命令;

      4)tcl中的注释,用###来表示,一个就可以。必须在一行的开头

      5)同一行命令太长,转到下一行,使用 //,先转义空格隔开单词,之后//表示转到下一行;

      6)大括号,{}中,不做特殊字符的识别,所有字符作为普通字符来处理;

      7)双引号,""""中,只有部分的特殊字符被处理,换行符,$,[],其他作为普通字符;

      8)tcl对复杂的数据结构支持不好,数组的支持也很奇怪。本文只讨论变量;

      9)tcl中的list 数据类型,不声明变量,直接放在{}中,也定义了一些list操作函数,直接对{}进行操作

          list中的不同对象之间用空格隔开;可以将list赋值给一个变量

    tcl中的置换有三种:

      1)变量置换,$只是进行变量的简单替换,并不进行运算;

        set x 10; set y $x+100;    那y的值是10+100,被当做一个整体的字符来处理,而并没有进行运算;

      2)命令置换,[,将最后一个命令的执行结果返回作为参数,内部可以有多条命令;

        set y [expr  $x+100;]    这时的y表示110;[]中的命令必须是若干tcl可识别的正确命令;

      3)反斜杠置换,,用来打出一些特殊的字符;如换行符 ,空格,[,$,并没有另一个方括号];

        set msg money $3333 Array a[2]    输出money $3333

                            Array a[2]

    tcl中的操作数,整数,实数都可以,0x开头表示十六进制,o开头表示八进制;

      运算符和优先级与C类似;

    tcl中的控制流,while,for,if,foreach,switch,各个参数用空格隔开,可以使用{}包住各个分开的参数

      其中的{},{必须写在与命令一行的地方,避免tcl认为命令已经结束;

        break和continue,来控制单个循环;

    tcl中的默认命令:

      1)set 设置变量,变量命令也遵守C的标准,字符,数字,下划线;

          set a 2;  $a表示该变量

      2)unset,删掉某个变量;可以加多个变量   unset  a   b;表示都被删除

      3)append,变量拼接,  incr,操作数必须是整数,相加;

      4)expr,数学计算命令,参数必须是数字,支持很多C的运算函数,可以直接调用;

    tcl中的输入输出:

      1)scan,可以实现格式化输入:

        scan "some 26 34"  "some %d %d" a b 

      2)puts,格式化输出:

        puts [format "the value of c is %d, d is %d, e is %d, f is %d" $c  $d  $e  $f]

    tcl中的错误,异常处理:

      1)catch  command ? varname,执行command,返回之后的结果为命令返回值,或者直接赋值给变量var_name;并不会退出tcl

      2)error message ? info ? code,将message作为一个错误信息,返回回去,

    扔缺少procedure,文件,字符串处理部分,需要补充;

  • 相关阅读:
    Windows文件系统过滤驱动开发教程(2)
    setTimeout 和 setInterval 计时的区别
    网页栅格系统研究(1):960的秘密
    JS验证控制输入中英文字节长度(input、textarea等)
    require(),include(),require_once()和include_once()之间的区别
    CSS:浅谈自适应宽度圆角按钮实现
    CSS选择器总结
    数据库“长连接”与“短连接”
    网页栅格系统研究(3):粒度问题
    网页栅格化研究(2):蛋糕的切法
  • 原文地址:https://www.cnblogs.com/-9-8/p/7743388.html
Copyright © 2020-2023  润新知