Die Tage, als Perl die Skriptsprache der Wahl für das Programmieren mit Kommandozeilen auf Linux-Systemen war, sind vorbei. Heutzutage steht eine ganze Anzahl von Programmiersprachen zur Verfügung, darunter Python, Ruby und PHP. Wer bereits PHP-Code für Websites schreibt und sich in der Sprache auskennt, wird PHP auf der Kommandozeile schnell und leicht einsetzen können.

Die wichtigsten Funktionen, die eine Programmiersprache in einem Skript auszuführen hat, sind die Dateienverarbeitung und die Aufnahme von Nutzereingaben. PHP geht hier ebenso konventionell zu Werke wie alle anderen Skriptsprachen.

Sollen zum Beispiel PHP-Nutzereingaben während der Ausführung eines Skripts gelesen werden, findet folgender Code Anwendung:

#!/usr/bin/php
<?php
function read_input()
{
$fp    = fopen("/dev/stdin", "r");
$input = trim(fgets($fp, 255));
fclose($fp);
return $input;
}
printf("Please supply your name: ");
$name = read_input();
printf("nHello, $name.n");
?>

Die oben definierte Funktion read_input() übernimmt Eingaben aus STDIN, speichert sie in der Variable $input, entfernt sämtlichen davor und dahinter liegenden Durchschuss und gibt sie wieder aus. Das gleiche Prinzip kann angewandt werden, um normale Dateien zu lesen und zu bearbeiten. Man bedenke, dass STDIN für Linux einfach nur eine Datei ist (daher wird im Beispiel oben /dev/stdin geöffnet).

#!/usr/bin/php
<?php
if (file_exists($argv[1]))
{
$file = $argv[1];
} else {
printf("ERROR: File '$file' does not exist!n");
exit 1;
}
$data = file($file);
$c    = 1;
foreach ($data as $line)
{
printf(sprintf("[%s]: %s", $c, $line));
$c++;
}

Im oben angeführten Beispiel liest das PHP-Skript jede Zeile der in der Kommandozeile angegebenen Datei und gibt sie mit vorangestellter, fortlaufender Zeilennummer wieder aus. Wenn die Datei nicht existiert, druckt das Skript eine Fehlermeldung und wird mit Code 1 beendet. (Dies weist auf einen Fehler hin. Bei normalem Verlauf würde das Skript mit Code 0 beendet.) Die Funktion file() wird hier eingesetzt, da sie jede Zeile der Datei in ein Array einliest (in diesem Fall $data), das dann im Statement foreach() verwendet wird, um das Array einmal pro Zeile in der Datei durchzuarbeiten.

PHP muss nicht mehr nur für Web-Programmierung eingesetzt, sondern kann ohne großen Aufwand auch für das Programmieren mit Kommandozeilen verwendet werden. Dabei ist PHP auch flexibel und schnell. Ebenso kann nahezu alles, was man mit einem Webskript macht, etwa die Bearbeitung von Datenbanken, sehr leicht auch mittels eines Kommandozeilenskripts in PHP erledigt werden.

ZDNet.de Redaktion

Recent Posts

Google schließt Zero-Day-Lücke in Chrome

Von ihr geht ein hohes Risiko aus. Angreifbar sind Chrome für Windows, macOS und Linux.

2 Tagen ago

KI erkennt Emotionen in echten Sportsituationen

Forschende des KIT haben ein Modell zur Emotionsanalyse entwickelt, das affektive Zustände ähnlich genau wie…

2 Tagen ago

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

3 Tagen ago

Apple stellt neuen Mobilprozessor M4 vor

Er treibt das neue iPad Pro mit OLED-Display an. Apple verspricht eine deutliche Leistungssteigerung gegenüber…

4 Tagen ago

Cyberabwehr: Mindestens zwei kritische Vorfälle pro Tag

Davon entfällt ein Viertel auf staatliche Einrichtungen und 12 Prozent auf Industrieunternehmen.

4 Tagen ago

Tunnelvision: Exploit umgeht VPN-Verschlüsselung

Forscher umgehen die Verschlüsselung und erhalten Zugriff auf VPN-Datenverkehr im Klartext. Für ihren Angriff benötigen…

4 Tagen ago