Referenz - SHELL
Syntax: SHELL [Kommando AS STRING]
Typ: Funktion
Kategorie: Verschiedenes
SHELL führt ein Systemkommando aus und gibt die Kontrolle an das aufrufende Programm zurück, sobald das aufgerufene Kommando abgearbeitet wurde.
- 'Kommando' ist eine Befehlszeile, die an die Konsole übergeben wird. Dies kann der Name eines Programms inklusive Parametern oder ein Systemkommando sein.
- Der Rückgabewert ist 0, wenn der Aufruf erfolgreich war, oder -1, wenn ein Fehler aufgetreten ist. Ein Fehler kann z.B. sein, dass die angegebene Datei oder der Befehl nicht existiert.
Beispiel (Windows):
SHELL "DIR C:\*.*"
Beispiel (Linux):
SHELL "ls -alh"
Soll das aufgerufene Programm parallel zum FB-Programm laufen, kann unter Win32 "Start" gestartet werden:
SHELL "START notepad"
Beispiel zum Aufruf als Funktion:
DIM AS INTEGER Result
Result = SHELL ("NOTEPAD.EXE")
Print "Rueckgabe war " & Result & "."
Sleep
Unterschiede
zu QB:
- SHELL kann auch als Funktion eingesetzt werden.
- Ohne Parameter wird keine CMD-Sitzung gestartet.
Bug in der Linux-Version (bis einschließlich V. 0.20.0):
Ab dem 1020. Aufruf des SHELL-Befehls innerhalb eines Programms (etwa durch eine Schleife) funktioniert SHELL nicht mehr, d.h. das übergebene Kommando wird nicht ausgeführt. Stattdessen wird die Fehlermeldung
sh: pipe error: Zu viele offene Dateienausgegeben. Der Fehler ist im
Bugtracker dokumentiert (siehe auch
Bugreport im Forum) und wurde am 08.04.2010 in der SVN-Version behoben. Die aktuelle Stable-Version (0.20.0) enthält den Bug noch. Nutzer dieser Version können einen Workaround wie den folgenden verwenden, wenn sie nicht auf eine SVN-Version updaten möchten: Ersatzfunktion für Shell in der NoPaste-Codeablage
Siehe auch:
RUN,
EXEC,
CHAIN,
END,
COMMAND,
CONSTRUCTOR,
DESTRUCTOR
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||




FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Versionen