wish - 簡單的視窗式(windowing) shell
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
則對不完整的命令不給以提示符。
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
http://cmpp.linuxforum.net
本頁面中文版由中文 man
手冊頁計劃提供。
中文 man 手冊頁計劃:
https://github.com/man-pages-zh/manpages-zh