Skript Interpreten in Linux

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Der Interpreter in der Windows-Welt

Eine Datei wird anhand ihrer Endung einem Programm zugeordnet.

Das ist auch bei Skripten so – sie werden anhand ihrer Endung an einen Interpreter übergeben.

Endung Interpreter
.pl Perl
.py Python
.bat command.com
.cmd cmd.exe

Der Interpreter in der Linux-Welt

  • Unter Unix/Linux entscheidet nicht die Dateiendung, welchem Interpreter ein Skript übergeben wird.
  • Dateiendungen sind optional und dienen eher der Organisation.
  • Der Dateityp – und damit der Interpreter – wird durch die ersten Bytes des Dateiinhalts bestimmt.
  • echo "echo Hallo Welt" > skript
  • file skript
skript: ASCII text
  • Hier sehen wir, dass die Datei als normaler ASCII-Text erkannt wird.
  • Bei einem Programmaufruf wird sie einfach der aktuellen Shell übergeben (es gibt außer der Bash noch andere Shells, z. B. Bourne-Shell (bsh), Korn-Shell (ksh), ash).
  • chmod +x skript
  • ./skript
Hallo Welt
  • Um sicherzugehen, dass das Skript der richtigen Shell übergeben wird, fügt man an den Skriptanfang einfach ein #! an – in unserem Fall ein #!/bin/bash für die Bourne-Again Shell.
  • Dadurch wird das Programm, welches hinter dem #! (Shebang/Gobang Operator) steht, als Interpreter für das Skript verwendet.
#!/bin/bash
date
hostname
pwd
  • Selbst in der C-Shell ist somit sichergestellt, dass das Skript der Bash übergeben wird.
  • csh
  • file skript
skript: Bourne-Again shell script text executable

Aufgaben

  • Reichen Sie die Befehle ls, ip a und id in einem Skript aneinander und führen Sie es aus.
  • Wie bestimmt man, welcher Shell das Skript übergeben wird?
  • Welche Möglichkeiten gibt es, ein Skript aufzurufen?
  • Und wie unterscheiden sich diese Möglichkeiten?