## Tcl8.6.17/Tk8.6.17 Documentation > Tcl/Tk Applications > wish

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    wish — 窓のある単純な対話指示機能 　　Simple windowing shell
  構文 SYNOPSIS
  指示項目 OPTIONS
    -encoding name
    -colormap new
    -display display
    -geometry geometry
    -name name
    -sync
    -use id
    -visual visual
    --
  説明 DESCRIPTION
  指示項目の処理 OPTION PROCESSING
  応用譜の名前と級 APPLICATION NAME AND CLASS
  諸変数 VARIABLES
    argc
    argv
    argv0
    geometry
    tcl_interactive
  記述譜ファイル SCRIPT FILES
  催促符号 PROMPTS
  SEE ALSO
  KEYWORDS

### NAME

wish — 窓のある単純な対話指示機能 　　Simple windowing shell

### 構文 SYNOPSIS

wish ?options? ?fileName arg ...?

### 指示項目 OPTIONS

-encoding name
  fileName に保存された文書の文字符号系を指定する｡ この指定は fileName 引数に先行するときのみ認識される｡　　　　　 Specifies the encoding of the text stored in fileName. This option is only recognized prior to the fileName argument.

-colormap new
  窓が画面の為に無為設定の色地図を使う代りに新しい私的色地図を有するべきことを指定する｡　　　　　 Specifies that the window should have a new private colormap instead of using the default colormap for the screen.

-display display
  窓を表示すべき表示装置(と画面)｡　　　　　　 Display (and screen) on which to display window.

-geometry geometry
  窓の為に使用する初期幾何｡もしこの指示項目が指定されている場合､その値は応用譜の解釈実行機能の geometry 大域変数内に保存される｡　　　　　 Initial geometry to use for window. If this option is specified, its value is stored in the geometry global variable of the application's Tcl interpreter.

-name name
  窓内に表示される表題として name を使用する､又､send 命令の為の解釈実行機能の名前として使用する｡ 　　　　　 Use name as the title to be displayed in the window, and as the name of the interpreter for send commands.

-sync
  すべての X 中央集中処理命令を同期して実行する､その結果､不都合は直ぐに報告される様になる｡ その為に､実行が大変遅くなるが､瑕疵修正には便利である｡　　　　　　 Execute all X server commands synchronously, so that errors are reported immediately. This will result in much slower execution, but it is useful for debugging.

-use id
  応用譜の為の主窓は､独立した頂上窓として生成されるのではなく､識別子が id の窓に埋め込まれることを指定する｡ id は頂上部品(即ち､ winfo id 命令によって返される様な形式を有する)についての -use 指示に関する値と同じ方法で指定されなければならない｡　　　　　 Specifies that the main window for the application is to be embedded in the window whose identifier is id, instead of being created as an independent toplevel window. Id must be specified in the same way as the value for the -use option for toplevel widgets (i.e. it has a form like that returned by the winfo id command).
    註意すべきは､どれかのOSでは､これは､id が､-container 指示項目を有効にさせた Tk frame や､toplevel を参照するときのみ正しく働くことである｡　　　　　　 Note that on some platforms this will only work correctly if id refers to a Tk frame or toplevel that has its -container option enabled.

-visual visual
  窓の為に使う為の視覚を指定する｡ 視覚 visual は Tk_GetVisual 手続函数によって運営されるどのような形式を有していてもよい｡　　　　　　 Specifies the visual to use for the window. Visual may have any of the forms supported by the Tk_GetVisual procedure.

--
  残りの全ての引数を解釈実行することなく､記述譜の argv 変数に渡す｡ これにより､引数を wish に解釈実行させる代わりに､ -name の如く記述譜に渡す仕組みを提供する｡　　　　　　 Pass all remaining arguments through to the script's argv variable without interpreting them. This provides a mechanism for passing arguments such as -name to a script instead of having wish interpret them.

### 説明 DESCRIPTION

wish は､Tcl 命令言語､Tk 道具類､標準入力やファイルから命令を読む主算譜からなる単純な算譜である｡それは主なる窓を作成し､次に Tcl 命令を処理する｡もし wish が引数を伴って起動されると最初の幾つかの引数 ?-encodingname? ?fileName? が記述譜ファイルの名前を指定する､更に引数があれば､記述譜ファイル内に保存された文書データの文字符号系を指定する｡ fileName の値は適切な引数が “-” で始まっていない場合に認識される｡ Wish is a simple program consisting of the Tcl command language, the Tk toolkit, and a main program that reads commands from standard input or from a file. It creates a main window and then processes Tcl commands. If wish is invoked with arguments, then the first few arguments, ?-encoding name? ?fileName?, specify the name of a script file, and, optionally, the encoding of the text data stored in that script file. A value for fileName is recognized if the appropriate argument does not start with “-”.

もし引数がないか､引数が fileName を指定していない場合､wish は標準入力から対話的に Tcl 命令を読込む｡全ての窓が削除されない限り､又は､標準入力がファイル末尾に到達しない限り､命令の処理を続ける｡ 使用者の我が家ディレクトリー内にファイル “.wishrc” が実在する場合､ wish は､標準入力の最初の命令を読込む前に､そのファイルを Tcl 記述譜として評価する｡　　　　　 If there are no arguments, or the arguments do not specify a fileName, then wish reads Tcl commands interactively from standard input. It will continue processing commands until all windows have been deleted or until end-of-file is reached on standard input. If there exists a file “.wishrc” in the home directory of the user, wish evaluates the file as a Tcl script just before reading the first command from standard input.

もし wish への引数が fileName を指定している場合､ fileName は記述譜ファイルの名前として扱われる｡ wish は fileName 内の記述譜を評価する(それは大概､使用者対話機能を生成する)､その為､全ての窓が除去されるまで行事に応答する｡ 命令は標準入力から読込まれることはない｡ wish 命令行上に記述譜ファイルの名前がある時､ “.wishrc” の自動的評価は行われないが､記述譜ファイルは source を､望む限り何時でも､使うことができる｡　　　　　　　 If arguments to wish do specify a fileName, then fileName is treated as the name of a script file. Wish will evaluate the script in fileName (which presumably creates a user interface), then it will respond to events until all windows have been deleted. Commands will not be read from standard input. There is no automatic evaluation of “.wishrc” when the name of a script file is presented on the wish command line, but the script file can always source it if desired.

註意すべきはWindowsでは､wish版.exe算譜はtclsh版.exe算譜から､重要な追加的方法で派生し変更されている: それは標準 Windows 黒窓には結合しなくなり､寧ろ､窓になった算譜である｡ それ故､追加的に自身の窓操作卓命令(console 命令)の利用を提供している｡　　　　　　 Note that on Windows, the wish version.exe program varies from the tclsh version.exe program in an additional important way: it does not connect to a standard Windows console and is instead a windowed program. Because of this, it additionally provides access to its own console command.

### 指示項目の処理 OPTION PROCESSING

wish は上に要約した OPTIONS 内に記述した全ての命令行指定を自動的に処理する｡ それ以外の､その他のどの命令行引数も､後に述べる argc や argv 変数を使って応用譜に渡される｡ Wish automatically processes all of the command-line options described in the OPTIONS summary above. Any other command-line arguments besides these are passed through to the application using the argc and argv variables described later.

### 応用譜の名前と級 APPLICATION NAME AND CLASS

send 命令の様な目的に使用される応用譜の名前は､もし指定されていると､-name 指示項目によって取扱われる; そうでない場合､指定されていれば fileName によって扱われ､又は wish が起動された命令の名前から指定される｡ 後の二つの場合､もし名前が “/” 文字を含んでいると最後の斜線の後の文字並びのみが応用譜名前として使われる｡　　　　　　 The name of the application, which is used for purposes such as send commands, is taken from the -name option, if it is specified; otherwise it is taken from fileName, if it is specified, or from the command name by which wish was invoked. In the last two cases, if the name contains a “/” character, then only the characters after the last slash are used as the application name.

RESOURCE_MANAGER 特性や .Xdefaults ファイルによって追加項目を指定するような目的で使用されている応用譜の級は､先頭文字が大文字化されている事を除けばその名前と同じである｡ 　　　　　　 The class of the application, which is used for purposes such as specifying options with a RESOURCE_MANAGER property or .Xdefaults file, is the same as its name except that the first letter is capitalized.

### 諸変数 VARIABLES

wish は次の Tcl 大域変数を設定する｡ Wish sets the following global Tcl variables:

argc
  arg 引数の個数を含む(無しの場合は0 )､上で述べた指示項目は含まない｡　　　　　　 Contains a count of the number of arg arguments (0 if none), not including the options described above.

argv
  その要素が -- 指示項目に続くか､上述の OPTIONS に記述されたどの指示項目にも合致しない arg 引数である様な､Tcl リストか､或いは､その様な引数がない場合は空文字列､を含む｡　　　　　 Contains a Tcl list whose elements are the arg arguments that follow a -- option or do not match any of the options described in OPTIONS above, in order, or an empty string if there are no such arguments.

argv0
  指定されている場合は fileName を含む｡そうでない場合､wish が起動されたものの名前を含む｡　　　　　　 Contains fileName if it was specified. Otherwise, contains the name by which wish was invoked.

geometry
  もし -geometry 指定が指定されている場合 wish はその値をこの変数内に複写する｡ もしfileName が評価された後依然としてこの変数が存在する場合､wish は主窓の幾何を設定する為にwm geometry 命令内のこの変数の値を使う｡　　　　　 If the -geometry option is specified, wish copies its value into this variable. If the variable still exists after fileName has been evaluated, wish uses the value of the variable in a wm geometry command to set the main window's geometry.

tcl_interactive
  もし wish が命令を対話的に読む(fileName が指定されず､且つ標準入力が端末様機器である)場合は 1 を､そうでない場合は 0 含む｡　　　　　　 Contains 1 if wish is reading commands interactively (fileName was not specified and standard input is a terminal-like device), 0 otherwise.

### 記述譜ファイル SCRIPT FILES

もしファイル内に生成した Tcl 記述譜の最初の行が次であれば　　　　　　 If you create a Tcl script in a file whose first line is

    #!/usr/local/bin/wish

そのファイルに実行可能の印が付いていれば､使用者のシェルから直接記述譜ファイルが起動される｡ wish は無為設定では /usr/local/bin の場所に実装されていると仮定されている､もしどこかそれ以外の場所に実装されている場合､それに合致させて上述の行を修正しなければならない｡ 多くの UNIX 系では#! 行は約３０文字長さを超えることを許容していない､そこで､wish が呼出して実行できるような短いフィル名であることを確認しておかれたい｡　　　　　　 then you can invoke the script file directly from your shell if you mark it as executable. This assumes that wish has been installed in the default location in /usr/local/bin; if it is installed somewhere else then you will have to modify the above line to match. Many UNIX systems do not allow the #! line to exceed about 30 characters in length, so be sure that the wish executable can be accessed with a short file name.

更に良いやり方は､次の３行で記述譜を始めることである:　　　　　　 An even better approach is to start your script files with the following three lines:

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

この方法は前の段落の方法よりも３つの利点がある｡ 第１､wish ２進譜の場所が記述譜内に緊密に繋びつかない: シェルが捜索する経路なら何処にあっていもよい｡ 第２､最初の方法のファイル名30語の限界を避けられる｡ 第３､この方法は､縦え wish そのものがシェル記述譜であってもうまく動く(ある種の系では､複数の装置構造やOSを取扱う為に､この方法で運用されている: 実行の為に wish 記述譜は､幾つかの２進譜の内の一つを選択する)｡ あの３行により sh と wish の両方が記述譜を処理することになるが､ exec は sh によってのみ実行される｡ 最初にsh が記述譜を処理する; それは､第２行を注釈として扱い､第３行を処理する｡ exec の命令文はシェルに実行を停止させ､その代わりに､wish に全体の記述譜を処理させる｡ wish が開始された時は､三つの行全部が注釈行として扱われる､理由は､第２行末尾の逆斜線が第３行を第２行の注釈行の一部分として取扱わせるから｡　　　　　　 This approach has three advantages over the approach in the previous paragraph. First, the location of the wish binary does not have to be hard-wired into the script: it can be anywhere in your shell search path. Second, it gets around the 30-character file name limit in the previous approach. Third, this approach will work even if wish is itself a shell script (this is done on some systems in order to handle multiple architectures or operating systems: the wish script selects one of several binaries to run). The three lines cause both sh and wish to process the script, but the exec is only executed by sh. sh processes the script first; it treats the second line as a comment and executes the third line. The exec statement cause the shell to stop processing and instead to start up wish to reprocess the entire script. When wish starts up, it treats all three lines as comments, since the backslash at the end of the second line causes the third line to be treated as part of the comment on the second line.

ファイル末尾は､媒体の物理的末尾か文字 “\032” (“\u001a”, control-Z) のどちらかで印される｡ もし､この文字がファイルに現れると､wish 応用譜は文書をその手前迄読出すがその文字は読まない｡ ファイル内にこの文字が必要な応用譜は､ “\032” か “\x1a” か “\u001a” として符号化するか､format や binary の様な命令を使用して生成すれば好い｡　　　　　　 The end of a script file may be marked either by the physical end of the medium, or by the character, “\032” (“\u001a”, control-Z). If this character is present in the file, the wish application will read text up to but not including the character. An application that requires this character in the file may encode it as “\032”, “\x1a”, or “\u001a”; or may generate it by use of commands such as format or binary.

### 催促符号 PROMPTS

wish は対話的に起動されていると､通常はそれぞれの命令を求めて “% ” で催促する｡催促符号は､大域変数 tcl_prompt1 や tcl_prompt2 を設定することにより変更できる｡ 変数 tcl_prompt1 が実在する場合､それは催促符号を出力する為の Tcl 記述譜を構成していなければならない; wish は催促符号を出力する代りに､tcl_prompt1 の中の記述譜を評価する｡変数 tcl_prompt2 も､改行が打鍵されたが､現在の命令が未だ完了していない時に､同じ様な方法に使用される; もし tcl_prompt2 が設定されていない場合､完了していない命令の為には催促符号は何も出力されない｡　　　　　　 When wish is invoked interactively it normally prompts for each command with “% ”. You can change the prompt by setting the variables tcl_prompt1 and tcl_prompt2. If variable tcl_prompt1 exists then it must consist of a Tcl script to output a prompt; instead of outputting a prompt wish will evaluate the script in tcl_prompt1. The variable tcl_prompt2 is used in a similar way when a newline is typed but the current command is not yet complete; if tcl_prompt2 is not set then no prompt is output for incomplete commands.

### SEE ALSO

tclsh, toplevel, Tk_Main, Tk_MainLoop, Tk_MainWindow

### KEYWORDS

application, argument, interpreter, prompt, script file, shell, toolkit, toplevel
Copyright © 1991-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.