总览

wish [filename] [arg] [arg ...]

选项

-colormap new
指定窗口使用一个新的私有的调色板(colormap)而不使用给屏幕的缺省的调色板。
-display display
指定显示窗口的显示器(和屏幕)。
-geometry geometry
初始化用于窗口的几何(位置、大小)。如果指定了这个选项,它的值存储在应用的 Tcl 解释器的 geometry 全局变量中。
-name name
用 name 作为窗口中显示的标题(title),作为被 send 命令使用的解释器的名字。
-sync
同步的执行所有 X 服务器命令,这样出错就可以立即报告。这将导致执行更慢,但对调试有用。 -use id 指定应用的主窗口要被嵌入标识符(identifier)为 id 的窗口中,而不是被建立为一个独立的顶层窗口。必须用与 toplevel 组件的 -use 选项的值相同的方式指定 Id (例如,它必须与 winfo id 的返回有一样的形式(form))。
-visual visual
指定这个窗口使用的视觉效果(visual)。Visual 必须用 Tk_GetVisual 过程所支持的形式。
- -
传递所有剩下的参数到脚本的 argv 变量而不解释它们。这提供了一种机制来传递象 -name 这样的参数到一个脚本而不让 wish 解释它们。

描述

Wish 是一个由 Tcl 命令语言、Tk 工具箱和一个从标准输入或文件读命令的主程序构成的简单的程序。它建立一个主窗口接着就处理 Tcl 命令。如果不加参数的调用 wish,或者第一个参数以“-”开始,则从标准输入交互的读 Tcl 命令。它将连续的处理命令直到删除了所有的窗口或在标准输入上到达文件结束。如果在用户的主(home)目录中存在文件 .wishrc,在从标准输入读第一条命令之前,wish 把这个文件作为一个 Tcl 脚本来求值。

如果调用 wish 时加了一个初始化 fileName 参数,则 fileName 被作为一个脚本文件的名字对待。Wish 将对 fileName 中的脚本进行求值(可能是建立一个用户界面),接着它将响应事件直到所有窗口被删除。将不从标准输入读命令。 在这种情况下不自动的对 .wishrc 求值,如果需要的话,脚本文件总是可以 source(包含)它。

 

关于选项

Wish 自动的处理在上面选项总结中描述的所有命令行选项。任何其他的命令行参数被用后面描述的 argc 和 argv 变量直接传递给应用(程序)。

应用的名字用于象 send 这样的命令,从如果指定了 -name 选项,则从其中获得;否则若指定了fileName则接受之,或者接受调用 wish 所使用的名字。在后两种情况,如果名字包含“/”字符,则只有在最后一个反斜杠后面的字符被作为应用的名字。

应用(程序)的类被用于通过 RESOURCE_MANAGER 属性或 .Xdefaults 文件来指定选项,除了第一个字母是大写的之外,类的名字同于应用的名字。

变量

Wish 设置了下列 Tcl 变量:

argc 包含 arg 参数的个数(没有则为 0),不包括上面描述的选项。

argv 包含一个 Tcl 列表,其成员依次是在 - - 选项后面或不匹配在上面的选项段落描述的任何选项的 arg 参数,如果没有这些参数则是一个空串。

argv0 如果指定了 fileName 则在此包含。否则。包含调用 wish 使用的名字。 geometry 如果指定了 -geometry 选项,wish 把它的值复制到这个变量中。如果在 fileName 被求值之后这个变量仍然存在,wish 在一个 wm geometry 命令中使用这个值来设置主窗口的几何(位置、大小)。

tcl_interactive 如果交互式运行 wish 则包含 1(不指定 fileName 并且标准输入是一个终端类设备),否则是 0。

脚本文件

如果你建立的 Tcl 脚本文件的第一行是

#!/usr/local/bin/wish

则如果你把它标记为可执行的,接着就可以直接在你的 shell 中调用这个脚本文件。这里假定了 wish 被安装在缺省的位置 /usr/local/bin;如果它被安装在其他地方,那么你需要修改上述行来匹配之。许多 UNIX 系统不允许 #! 行超出 30 个字符的长度,所以要确定 wish 可执行文件能被用短文件名访问。

一个更好的途径是用下面三行来开始你的脚本文件:

#!/bin/sh
# the next line restarts using wish \
exec wish "$0" "$@"

这种方法比起前面的段落有三个好处。首先,wish 二进制文件的位置不需要填入(hard-wired into) 脚本中: 它可以在你的 shell 查找路径中的任何地方。其次,他超越了(get around)了上种方法的 30 字符的文件名的限制。第三,这种方法在 wish 自身也是 shell 脚本时仍可运行(一些系统要处理多体系或操作系统: wish 脚本选择某个二进制文件来运行)。第三行导致 sh 和 wish 两者来处理脚本,但 exec 只被 sh 执行。 sh 首先处理脚本文件;它把第二行作为脚本文件对待并执行第三行。exec 语句导致 shell 停止处理而启动 wish 来重新处理整个脚本。当 wish 启动时,因为第二行的反斜线导致第三行被作为第二行注释的一部分,它把所有三行都作为注释对待。提示符

当交互式的调用 wish 时,它通常为每条命令提示“%”。你可以通过设置变量 tcl_prompt1 和 tcl_prompt2 来改变提示符。如果存在变量 tcl_prompt1 则它必须由一个输出一个提示符的 Tcl 脚本组成;tclsh 对 tcl_prompt1 中的脚本求值而不是输出一个提示符。变量 tcl_prompt2 以类似的方式用在键入了换行而当前命令却不完整的时候;如果没设置 tcl_prompt2 则对不完整的命令不给以提示符。

wish - 简单的窗口式(windowing) shell的更多相关文章

  1. EPUB弹出窗口式脚注

    网上搜到一些国学典籍的EPUB版,虽有古人的注解,但正文和注解混排在一起,当我只想迅速读正文的时候比较碍眼.于是研究了一下 EPUB3 中有关脚注(footnote)的规格定义,写了一个 Python ...

  2. Win32编程API 基础篇 -- 2.一个简单的窗口 根据英文教程翻译

    一个简单的窗口 例子:简单的窗口 有时人们在IRC提问,”我应该怎样制作一个窗口”...嗯,这恐怕不是完全这么简单好回答!其实这并不难一旦你明白你在做什么,但在你得到一个可展示的窗口之前还有一些事情需 ...

  3. MySQL5.7.29 和 Navicat ===> windows窗口式按装和使用

    MySQL windows窗口式按装下载方法:官网: https://www.mysql.com/ ==> DOWNLOADS ==> MySQL Community (GPL) Down ...

  4. Crumpet – 使用很简单的响应式前端开发框架

    Crumpet 是一个简单的响应式的基于 SASS/SCSS 的响应式前端框架,保持你的 HTML 代码简洁.内置尽量使用占位符选择器,以减少你的 HTML 标记的大小,没有凌乱的 HTML 代码.快 ...

  5. js简单实现链式调用

    链式调用实现原理:对象中的方法执行后返回对象自身即可以实现链式操作.说白了就是每一次调用方法返回的是同一个对象才可以链式调用. js简单实现链式调用demo Object.prototype.show ...

  6. 创建简单的响应式HTML5模版

    创建简单的响应式HTML5模版 HTML5目前发展势头良好,已经逐渐得到大部分浏览器不同程度的支持.许多web开发者也已经学习到了不少关于HTML 5的基础知识并开始试图使用HTML 5制作网页.与此 ...

  7. Notyf - 超级简单、响应式的 JS 通知插件

    通知是网站的常用功能之一,可以用来显示消息.通告.提示等等.Notyf 是一款超级简单.响应式的 JS 通知插件,不依赖 jQuery 库,可以独立使用.赶紧试用一下吧! 在线演示      免费下载 ...

  8. Win32汇编学习(3):简单的窗口

    这次我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口,以此根据代码来学习如何创建一个简单的窗口. 理论: Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows ...

  9. Android中简单活动窗口的切换--Android

    本例实现Android中简单Activity窗口切换:借助intent(意图)对应用操作(这里用按钮监听)等的描述,Android根据描述负责找对应的组件,完成组件的调用来实现活动的切换……案例比较简 ...

随机推荐

  1. 前端(十二)—— JavaScript基础操作:if语句、for循环、while循环、for...in、for...of、异常处理、函数、事件、JS选择器、JS操作页面样式

    JavaScript基础操作 一.分支结构 1.if语句 if 基础语法 if (条件表达式) { 代码块; } // 当条件表达式结果为true,会执行代码块:反之不执行 // 条件表达式可以为普通 ...

  2. 如何调用DLL中的导出类

    之前在网上一直查不到关于把类打包成dll文件的程序,今天自己写了个测试程序,供大家参考 一.生成类的dll文件 1.我是在vs2008上测试的,建立工程,在选择建立何种类型的工程的时候,勾上appli ...

  3. ArcGis Python常用脚本

    ArcGis Python脚本——ArcGIS 中使用的 Python 是什么版本 ArcGis Python脚本——批量添加字段 ArcGis Python脚本——批量删除字段 ArcGis Pyt ...

  4. .net core 根据环境变量区分正式、测试 配置文件

    新建测试.正式环境下所用的 配置信息文件 appsettings.Development.json 文件信息: { "Logging": { "LogLevel" ...

  5. EtherCat开源主站SOEM在windows下工程配置

    截至2019年1月,虽然github上有1.3.3的更新,但是用的人估计还不多,而且1.3.2被官方认为bug严重弃用.所以还是学习1.3.1. 1.拷贝osal.oshw.soem.lib(已生成l ...

  6. kali环境配置

    1.配置源及刷新软件列表 建议用官方默认源: # vi /etc/apt/sources.list deb http://http.kali.org/kali kali-rolling main no ...

  7. the blank final field factors may not have been initialized

    Q1: why we should initialize final field before completion of new instance? final means no changeabl ...

  8. tty - 显示连接标准输入的终端的文件名

    总览 (SYNOPSIS) tty [OPTION]... 描述 (DESCRIPTION) 显示 连接 标准输入 的 终端 的 文件名. -s, --silent, --quiet 什么 都 不显示 ...

  9. windows 远程登录

    在我的电脑  属性当中开启远程登录功能 然后制作账号,这里对于账号的命名是有要求的,具体网上查找说是要用户名和全名一样,我没有做测试,不过新创建了一个用户用来登录,总是告知我密码错误,导致登录失败,所 ...

  10. laravel 关掉debug

    修改.env文件 APP_DEBUG=false 然后把Laravel服务重启一下