Die Kommandozeile wird selbstständig

Einführung in Tcl/Tk, Teil 2

01.06.2000
Nachdem Sie im ersten Teil dieses Programmierkurses einen ersten Einblick in den Umgang mit Tcl/Tk gewinnen konnten, werden Sie diesmal tiefer in die Strukturen von Tcl eintauchen. Die dabei gewonnenen Fähigkeiten können Sie dazu verwenden, Kommandozeilenprogrammen eine intuitivere, auf Ihre persönlichen Bedürfnisse zugeschnittene Benutzerschnittstelle zu spendieren.

Tcl/Tk, kurz gefasst

Die Programmiersprache Tcl/Tk besteht aus der leicht erlernbaren Programmiersprache Tcl und der Widget-LibraryTk. Tcl/Tk (ausgesprochen: "Tickel-Tikej") erlaubt unter anderem die höchst einfache und effiziente Programmierung von grafischen Benutzeroberflächen. Der Programmcode wird von einem Interpreterausgeführt, der für Linux, verschiedene andere Unixbetriebssysteme, Windows, MacOS und OS/2 verfügbar und freie Software ist.

Viele Programme unter Unix lassen sich wunderbar von der Kommandozeile aus bedienen, aber leider muss man sich dafür oft eine Menge merken und hat nach ein paar Tagen seine mühsam erlernten Kommandos schon wieder vergessen. Da kann es hilfreich sein, sich ein kleines Progrämmchen zu stricken, das interaktiv die gewünschten Einstellungen abfragt und die lästige Kommandozeile selbst zusammen baut.

Ein hervorragender Kandidat für ein solches vorgeschaltetes Frontend ist Povray, ein Programm zur Erzeugung photorealistischer Bilder [1,2]. Es ist sehr mächtig und beherrscht eine unübersehbare Anzahl von Optionen. Wer damit jedoch – wie ich – nur ab und zu selbst gestaltete 3D-Bilder erzeugt, hat jedesmal wieder seine liebe Not, heraus zu bekommen, wie Povray zu bedienen ist.

Im Dschungel der Optionen

Zwar hilft man povray weiter, trotzdem dauert es geraume Zeit, bis man selbst die allereinfachsten Optionen nachgeschlagen hat.

Wollen Sie Povray auffordern, Ihre Datei mit der Szenenbeschreibung zu rendern, so tun Sie das durch die Eingabe von

povray +Iszenenbeschreibungsdatei +Obilddatei

Falls Sie nicht die von Povray gewählte Bildgröße übernehmen, sondern eine andere festlegen möchten, können Sie das mit

povray +Iszenenbeschreibungsdatei +Obilddatei +Wbildbreite +Hbildhöhe

Das interaktive Zusammenstellen dieser Kommandozeile mit Hilfe von Tcl und die Übergabe an das Programm povray zum Rendern lernen Sie im heutigen Teil dieser Tcl-Einführung.

Am Anfang war der Interpreter

In Teil 1 [7] haben Sie den Interpreter für Tcl/Tk auf der Kommandozeile gestartet und ihm dann Ihre Programmdatei zur Ausführung übergeben. Diesmal geht es eleganter zu: Der Interpreter soll vom Programm selbst gestartet werden. Dazu geben Sie dem Betriebssystem, also dem Linux-Kernel, in der ersten Zeile Ihres Programmcodes den Auftrag.

Dies geht allerdings nicht so einfach wie in einem Terminal. Dort läuft nämlich schon ein Interpreter – unter Linux ist es im Regelfall die bash. Übergeben Sie ihr einen Befehl zur Ausführung, so sucht sie in ihrem Pfad, also in den ihr bekannten Verzeichnissen ausführbarer Programme, nach einem Programm mit dem Namen, den Sie eingegeben haben. Erst wenn sie alle Verzeichnisse durchsucht und immer noch nichts gefunden hat, wird sie eine Fehlermeldung ausgeben.

Der Betriebssystemkern hat diese Möglichkeit der Suche nach ausführbaren Programmen nicht. Er ist daher darauf angewiesen, dass Sie ihm die genaue Stelle des auszuführenden Programms angeben.

Da diesmal keine Fensterelemente wie Buttons u.a. benötigt werden, brauchen Sie Tk, die Widget-Library von Tcl/Tk nicht. Statt der wish aus Teil 1 können Sie deshalb direkt die Tcl-Shell tclsh (sprich: "Tickelschell"), den Interpreter für Ihre Tcl-Befehle, starten.

Um die genaue Schreibweise und den Fundort der tclsh zu ermitteln, tippen Sie am besten in einem Terminal

which tclsh

ein, wobei Sie tclsh gegebenenfalls durch einen genaueren Namen wie z.B. tclsh8.0 ersetzen müssen, je nachdem, wie Sie (oder Ihr Distributor) sie installiert haben.

Prüfen können Sie dies, indem Sie tclsh gefolgt von einem Doppeldruck auf die Tab(ulator)-Taste eingeben. Die Antwort der bash werden alle möglichen Befehle sein, die mit tclsh beginnen: Eventuell haben Sie verschiedene Versionen der tclsh installiert. Das erkennen Sie an unterschiedlichen Versionsnummern am Ende von tclsh. Die aktuelle Version ist 8.3, aber die Beispiele in diesem Text sind alle mit wesentlich älteren Tcl-Versionen wie z.B. tclsh7.4 lauffähig.

which gibt den genauen Pfad des danach stehenden Programms aus. War die Antwort auf which tclsh z.B. /usr/bin/tclsh, so lautet die erste Zeile Ihres Programms

#!/usr/bin/tclsh

Diese Zeile, die den Interpreter starten soll, schreiben Sie in eine Datei und speichern diese unter dem Namen poff.tcl (für "povray für Faule"). Die Dateiendung .tcl ist zwar nicht nötig, hilft Ihnen aber zu erkennen, dass es sich um ein von Tcl zu interpretierendes Programm handelt.

Um Ihre Datei in ein Programm zu verwandeln, müssen Sie sie ausführbar machen. Das erreichen Sie durch folgende Eingabe in einem Terminal:

chmod +x poff.tcl

Sie könnten poff.tcl jetzt starten, es täte allerdings nichts, außer den Interpreter aufzurufen und sofort wieder zu beenden. Geben Sie ihm also Futter.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Einführung in Tcl/Tk, Teil 4
    In der vierten und letzten Folge dieser Tcl/Tk-Einführung fügen wir der in Teil drei entstandenen Steuerungsoberfläche für Povray Funktionalität hinzu und erwecken sie so zum Leben.
  • Frontends für Povray
    Mit Povray lassen sich wunderschöne virtuelle Welten erschaffen. Das richtige Frontend erleichtert die Bedienung, beschleunigt die Entwicklung und erhöht den Spaßfaktor.
  • Einführung in Tcl/Tk, Teil 1
    Die Kommandozeile hat unbestritten ihre Vorteile. Doch manche Aufgaben lassen sich einfacher mit einer grafischen Benutzeroberfläche erledigen. Tcl/Tk ist ein wunderbares Tool, mit dem sich ohne großen Aufwand grafische Benutzeroberflächen erstellen lassen. Im ersten Teil dieser Einführung lernen Sie, wie man Buttons erstellt und mit ihrer Hilfe Befehle ausführt.
  • Einführung in Tcl/Tk, Teil 3
    Nachdem Sie im ersten Teil dieses Programmierkurses gesehen haben, wie einfach sich Buttons mit Tcl/Tk programmieren lassen, und im zweiten mehr über die Skriptsprache Tcl lernen konnten, werden Sie diesmal eine etwas aufwändigere grafische Oberfläche erstellen.
  • 3D-Modelle mit AC3D 4.0
    Das Erschaffen dreidimensionaler Welten mit Povray ist mühsam und fehlerträchtig: Alle Objekte müssen in einer Textdatei definiert werden. AC3D schafft mit seinem grafischen Editor Abhilfe.
Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...