Spec-Zone.ru › Tcl/Tk

tclsh

НАЗВАНИЕ
tclsh — Простая оболочка с интерпретатором Tcl
СИНТАКСИС
ОПИСАНИЕ
ФАЙЛЫ СКРИПТОВ
ПЕРЕМЕННЫЕ
argc
argv
argv0
tcl_interactive
ПОДСКАЗКИ
СТАНДАРТНЫЕ КАНАЛЫ
СМОТРИТЕ ТАКЖЕ
КЛЮЧЕВЫЕ СЛОВА

Имя

tclsh — Простая оболочка с интерпретатором Tcl

Синтаксис

tclsh ?-encoding имя? ?имяФайла аргумент аргумент ...?

Описание

Tclsh — приложение, подобное оболочке, которое считывает команды Tcl из стандартного ввода или файла и оценивает их. Если вызывается без аргументов, оно работает интерактивно, считывая команды Tcl из стандартного ввода и выводя результаты команд и сообщения об ошибках в стандартный вывод. Оно работает до тех пор, пока не будет вызвана команда exit или пока не будет достигнут конец файла в стандартном вводе. Если в домашнем каталоге пользователя существует файл .tclshrc (или tclshrc.tcl на платформах Windows), интерактивная оболочка tclsh оценивает файл как скрипт Tcl непосредственно перед считыванием первой команды из стандартного ввода.

Файлы скриптов

Если tclsh вызывается с аргументами, то первые несколько аргументов указывают имя файла скрипта и, необязательно, кодировку текстовых данных, хранящихся в этом файле скрипта. Любые дополнительные аргументы доступны скрипту в качестве переменных (см. ниже). Вместо чтения команд из стандартного ввода tclsh будет читать команды Tcl из указанного файла; tclsh завершит работу при достижении конца файла. Конец файла может быть помечен физическим концом носителя или символом «\032» («\u001a», символ управления Z). Если этот символ присутствует в файле, приложение tclsh будет читать текст до, но не включая, этот символ. Приложение, которому требуется этот символ в файле, может безопасно закодировать его как «\032», «\x1a» или «\u001a»; или сгенерировать его с помощью команд, таких как format или binary. При указании имени файла скрипта в командной строке tclsh не происходит автоматической оценки .tclshrc, но файл скрипта всегда может source его, если это необходимо.

Если вы создаёте скрипт Tcl в файле, первая строка которого

#!/usr/local/bin/tclsh

то вы можете вызвать файл скрипта непосредственно из своей оболочки, если вы отметите файл как исполняемый. Это предполагает, что tclsh установлен по умолчанию в /usr/local/bin; если он установлен в другом месте, вам нужно будет изменить вышеприведенную строку, чтобы она соответствовала. Многие UNIX-системы не позволяют строке #! превышать примерно 30 символов, поэтому убедитесь, что к исполняемому файлу tclsh можно получить доступ с коротким именем файла.

Более подходящий подход заключается в том, чтобы начать файлы скриптов с трёх строк:

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

Этот подход имеет три преимущества по сравнению с подходом в предыдущем абзаце. Во-первых, расположение двоичного файла tclsh не нужно жёстко задавать в скрипте: он может находиться где угодно в пути поиска вашей оболочки. Во-вторых, он обходит ограничение длины имени файла в 30 символов в предыдущем подходе. В-третьих, этот подход будет работать, даже если tclsh сам является скриптом оболочки (это делается на некоторых системах для обработки нескольких архитектур или операционных систем: скрипт tclsh выбирает один из нескольких двоичных файлов для запуска). Три строки обрабатываются как sh, так и tclsh, но exec выполняется только sh. sh обрабатывает скрипт сначала; он рассматривает вторую строку как комментарий и выполняет третью строку. Оператор exec заставляет оболочку прекратить обработку и вместо этого запустить tclsh для повторной обработки всего скрипта. При запуске tclsh все три строки обрабатываются как комментарии, поскольку обратный слэш в конце второй строки заставляет третью строку обрабатываться как часть комментария ко второй строке.

Следует отметить, что также распространена практика установки tclsh с номером версии в качестве части имени. Это имеет преимущество, позволяющее одновременно использовать несколько версий Tcl на одной системе, но также имеет недостаток, затрудняющий создание скриптов, которые запускаются одинаково на разных версиях Tcl.

Переменные

Tclsh устанавливает следующие глобальные переменные Tcl в дополнение к тем, которые создаются самой библиотекой Tcl (например, env, которая отображает переменные окружения, такие как PATH, в Tcl):
argc
Содержит количество аргументов arg (0, если нет), не включая имя файла скрипта.
argv
Содержит список Tcl, элементы которого представляют собой аргументы arg в порядке их следования или пустую строку, если нет аргументов arg.
argv0
Содержит имяФайла, если оно было указано. В противном случае содержит имя, по которому был вызван tclsh.
tcl_interactive
Содержит 1, если tclsh работает в интерактивном режиме (не было указано имяФайла и стандартный ввод — устройство, подобное терминалу), 0 в противном случае.

Подсказки

При интерактивном вызове tclsh обычно запрашивает каждую команду с помощью «% ». Вы можете изменить подствку, установив глобальные переменные tcl_prompt1 и tcl_prompt2. Если переменная tcl_prompt1 существует, она должна содержать скрипт Tcl для вывода подсказки; вместо вывода подсказки tclsh оценит скрипт в tcl_prompt1. Переменная tcl_prompt2 используется аналогичным образом, когда нажата клавиша ввода, но текущая команда ещё не завершена; если tcl_prompt2 не установлена, то для незавершенных команд не выводится никакая подсказка.

Стандартные каналы

См. Tcl_StandardChannels для получения дополнительной информации.

См. также

auto_path, encoding, env, fconfigure

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/UserCmd/tclsh.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/UserCmd/tclsh.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API