WISH(1) General Commands Manual WISH(1)

wish - 簡單的視窗式(windowing) shell

總覽

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

選項

指定視窗使用一個新的私有的調色盤(colormap)而不使用給螢幕的預設的調色盤。
指定顯示視窗的顯示器(和螢幕)。
初始化用於視窗的幾何(位置、大小)。如果指定了這個選項,它的值儲存在應用的 Tcl 直譯器的 geometry 全域性變數中。
用 name 作為視窗中顯示的標題(title),作為被 send 命令使用的直譯器的名字。
同步的執行所有 X 伺服器命令,這樣出錯就可以立即報告。這將導致執行更慢,但 對除錯有用。 -use id 指定應用的主視窗要被嵌入識別符號(identifier)為 id 的 視窗中,而不是被建立為一個獨立的頂層視窗。必須用與 toplevel 元件的 -use 選項的值相同的方式指定 Id (例如,它必須與 winfo id 的返回有一樣的形式 (form))。
指定這個視窗使用的視覺效果(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 則對不完整的命令不給以提示符。

關鍵字

shell, 工具箱

作者

Copyright (C) 1991-1994 The Regents of the University of California.
Copyright (C) 1994-1996 Sun Microsystems, Inc.
Copyright (C) 1995-1997 Roger E. Critchlow Jr.

寒蟬退士

2001/06/20

《中國linux論壇man手冊頁翻譯計劃》:

http://cmpp.linuxforum.net

本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh