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/tclshHa 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" "$@"
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.