A Tcl programozási nyelv

Fordítók



A Tcl shell

A Tcl shell egy Tcl interpretert tartalmazó program, amely interaktív vagy kötegelt üzemmódban parancsokat hajt végre.

tclsh ?fájlnév arg ...?
A tclsh akkor működik interaktív üzemmódban, ha argumentumok nélkül indítjuk, és a standard inputja terminálra csatlakozik. Különben kötegelt üzemmódban működik. A tclsh a globális tcl_interactive változót 1-re állítja, ha interaktívan fut, különben 0-ra.

Interaktív üzemmódban a tclsh induláskor Tcl scriptként végrehajtja a felhasználó home-könyvtárában található .tclshrc fájlt, ha az létezik. Ezután soronként parancsokat olvas be a terminálról, végrehajtja őket, és kiírja eredményüket vagy hibaüzenetüket.

Kötegelt üzemmódban a tclsh az első argumentumban megnevezett (argumentumok hiányában a standard inputról olvasott) Tcl script fájlt hajtja végre.

A tclsh akkor terminál, ha az interpreterben meghívják az exit parancsot, vagy ha fájl vége állapotba kerül az olvasott fájl illetve a standard input.

A tclsh argumentumait a következő globális változókban teszi hozzáférhetővé:

argc az argumentumok száma a script fájl nevét nem beleértve
argv a script fájl neve után megadott argumentumok listája (üres string, ha ilyenek nincsenek)
argv0 ha megadtuk, fájlnevet tartalmazza, különben azt a nevet, amelyen a tclsh-t elindítottuk

Két további globális változó az interaktív üzemmód promptját határozza meg. A tcl_prompt1 változónak a promptot kiíró Tcl scriptet kell tartalmaznia. A tcl_prompt2 változóban adhatunk meg egy másodlagos promptot kiíró scriptet a többsoros parancsok elsőtől különböző sorai elé. Ha a megfelelő változó nem létezik, az alapértelmezett elsődleges prompt a "%", a másodlagos az üres string.

Egy Tcl scriptet úgy tudunk önállóan futtathatóvá tenni, ha első sorában egy "#!" prefix után megadjuk a tclsh teljes elérési útját, és a script fájlt végrehajthatóként jelöljük meg. Például:

   #!/usr/local/bin/tclsh
Ha a tclsh elérési útvonalát nem akarjuk rögzíteni a script fájlban, akkor a következő leleményes megoldás kínálkozik:
   #!/bin/sh
   # a következő sor újraindítja a scriptet a tclsh-ben \
   exec tclsh "$0" "$@"
Ezzel a script először shell scriptként indul el. A shell az első két sort megjegyzésnek tekinti, a harmadik hatására pedig terminál és meghívja a tclsh-t a scriptre és a scriptnek megadott eredeti argumentumokra. A tclsh a második sort záró '\' miatt a harmadik sort a második sor folytatásának tekinti, és ezzel mint megjegyzést ignorálja.