Tcl/Tk Interpretator
Стандартные интерпретаторы
ИНТЕРПРЕТАТОР tclsh
Для запуска интерпретатора необходимо в ответ на приглашение операционной системы подать команду
- tclsh ?fileNamearg
arg ?
Если в домашнем каталоге пользователя существует файл .tclshrc, то tclsh обработает этот файл как скрипт Tcl до считывания первой команды со стандартного входа.
Когда tclsh запускается с аргументами, то первый аргумент fileName является именем файла со скриптом, а все последующие необязательные аргументы передаются скрипту в качестве переменных. Вместо того, чтобы считывать команды со стандартного входа, Интерпретатор будет работать в пакетном режиме: считывать их из указанного файла и завершит свою работу по достижении конца файла. В этом случае автоматической обработки файла .tclshrc не делается, но если это необходимо, то можно сослаться на него изнутри файла скрипта.
Tclsh задает следующие переменные Tcl:- Argc ≈содержит
счетчик количества аргументов arg (если ни одного, то 0), исключая
имя файла со скриптом.
Argv ≈ содержит список Tcl, элементами которого являются аргументы arg, в порядке их следования, или нулевую строку, если нет ни одного аргумента.
argv0 ≈ содержит fileName, если он был задан. В обратном случае содержит имя, при помощи которого был вызван tclsh.
tcl_interactive≈ содержит
1, если tclsh работает в интерактивном режиме (не было задано fileName
и стандартный вход есть терминальное устройство). В противном случае содержит
0.
ИНТЕРПРЕТАТОР wish представляет собой простую программу с двумя рабочими окнами, главным и выходным. ИНТЕРПРЕТАТОР может работать в интерактивном или пакетном режиме. В первом случае он считывает команды Tcl со стандартного входа: пользователь вводит команды с клавиатуры в главном окне, wish обрабатывает их и выводит результат или сообщение об ошибке в выходном окне.
Во втором случае источником команд для обработки служит указанный дисковый файл. В обоих режимах Интерпретатор будет работать до тех пор, пока не будут удалены все окна приложения, или пока на стандартный вход не поступит символ конца файла.
Для запуска интерпретатора необходимо в ответ на приглашение операционной системы подать команду
wish ?fileName arg arg ?
Если в домашнем каталоге пользователя существует файл .wishrc, то wish обработает этот файл как скрипт Tcl до считывания первой команды со стандартного входа.
Когда wish запускается с первым аргументом fileName, то аргумент считается именем файла со скриптом. Интерпретатор обработает файл fileName (создающий преимущественно интерфейс пользователя) в пакетном режиме и затем будет откликаться на события до тех пор, пока все окна не будут удалены. Команды со стандартного входа считываться не будут. В этом случае автоматической обработки файла .wishrc не делается, но если это необходимо, то файл скрипта может сослаться на него сам.
Wish ≈ автоматически обработает все необязательные аргументы arg командной строки из нижеприведенного списка.
Класс приложения (используемый для таких целей, как описание параметров при помощи свойства RESOURCE_MANAGER или файла .Xdefaults) совпадает с его именем за исключением первой буквы, которая делается заглавной. Wish ≈ задает следующие переменные Tcl:
argc, argv0, tcl_interactive
Если параметр -geometry был задан, то wish копирует его значение в эту переменную. Если после обработки fileName эта переменная еще существует, то wish использует значение этой переменной в команде wm geometry для задания геометрии главного окна.
ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ
Если создать файл скрипта (этот и следующий примеры даны для интерпретатора tclsh, для wish надо заменить в строках имя tclsh на wish) с первой строкой вида
- #!/usr/local/bin/tclsh
Еще удобнее будет начинать файлы со скриптами следующими тремя строками:
- #!/bin/sh
# the next line restarts using tclsh\
exec tclsh "$0" "$@"
- местонахождение исполняемого файла интерпретатора не нужно прописывать в скрипте: исполняемый файл может находиться в любом месте в пределах пути поиска оболочки пользователя;
- нет необходимости учитывать ограничение на длину строк;
- этот способ будет работать даже тогда, когда файл tclsh или wish сам является скриптом оболочки (иногда так поступают для того, чтобы иметь возможность работать с несколькими архитектурами или операционными системами: скрипт tclsh (wish) выберет для запуска один из нескольких исполняемых файлов).
Когда Интерпретатор запустится, он сочтет все три строки комментариями, потому что обратный слеш в конце второй строки означает для него, что третья строка есть продолжение комментария на второй строке.
Изменить символ приглашения можно при помощи переменных tcl_prompt1 и tcl_prompt2. Если переменная tcl_prompt1 существует, то она должна содержать скрипт Tcl для вывода приглашения; вместо вывода своего приглашения, Интерпретатор будет исполнять скрипт в tcl_prompt1. Переменная tcl_prompt2 используется аналогичным образом, когда при вводе была начата новая строка, но вводимая команда еще не была закончена. Если переменная tcl_prompt2 не была задана, то для незаконченных команд не будет выводиться никакого приглашения.