Der Martin: Script in Linux versus Batch in Windows

Beitrag lesen

Mahlzeit,

https://wiki.ubuntuusers.de/Skripte/

Hier sind einige kurze Code-Schnipsel, die sich leicht in eigenen Skripten verwenden lassen. Sie sind in verschiedenen Sprachen geschrieben, darunter Bash, Ruby, Python und Perl oder awk.

Das sind damit vorgefertigte Code-Schnipsel in allen nur erdenklichen Programmiersprachen, die in einem Shell-Script verwendet werden können.

Ich verstehe nicht wie ein Shell Script alle Programmiersprachen auf einmal beherrschen kann?

da gibt es zwei Möglichkeiten.

  1. Der Trivialfall: Man schreibt das Script, und ruft es dann auf, indem man den Namen des dafür zuständigen Interpreters davorsetzt. So wird es beispielsweise bei PHP gemacht. Der Aufruf erfolgt dann von der Kommandozeile mit
    php sample-script.php
    Da ist also keinerlei Magie dabei, das Prinzip ist dasselbe wie man es auch in Windows kennt.

  2. Mit Trick 17 und doppeltem Boden: Wenn du dir mal einige der Beispielscripte anschaust, wirst du feststellen, dass viele in der ersten Zeile etwas in der Art stehen haben:
    #!/usr/bin/env python
    Das ist die sogenannte Shebang-Zeile, an der die Shell (meistens bash) erkennt, welcher Interpreter für dieses Script zuständig ist, und tut dann das, was ich unter 1. beschrieben habe, automatisch.

Wenn ich also ein Shell-Script schreibe kann ich mir aussuchen ob ich Java, C, C++, Assembler oder einer der oben genannten Sprachen verwendet?

Naja, fast. So richtig funktioniert das nur mit Scriptsprachen - also Sprachen, die direkt interpretiert und ausgeführt werden. Was du eben genannt hast, sind aber üblicherweise Compilersprachen. Das heißt, ein Quellcode in C/C++ oder Java muss normalerweise erst in ein ausführbares Programm übersetzt ("compiliert") werden, das dann seinerseits wieder direkt von der Kommandozeile aus aufgerufen werden kann. Das ist dann ein "echtes" Programm, kein Script mehr.

Ich dachte immer ich kann in einem Script nur eine dafür vorgesehene Scriptsprache verwenden und nicht sämtliche Programmiersprachen.

Ja, ist auch so. Mehr oder weniger. ;-)

Bei Windows geht das aber meines Erachtens nicht

Doch, nur das Konzept ist anders. Windows erkennt die verschiedenen Dateitypen primär an der Endung des Dateinamens. Es ist nun kein Hexenwerk, Windows beizubringen, dass Dateien mit der Endung ".php" grundsätzlich mit dem PHP-Interpreter php.exe geöffnet werden. Dann kann man sie entweder direkt aus dem Windows-Explorer per Doppelklick starten, oder von der Kommandozeile aus mit dem "Zauberwort" start, also etwa:
start myscript.php

So long,
 Martin