Skript Interpreten in Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
==Der Interpretor in der Windowswelt==
== Der Interpreter in der Windows-Welt ==
Eine Datei wird anhand ihrer Endung einem Program zugeordnet.


Das ist auch bei Skripten so.
Eine Datei wird anhand ihrer Endung einem Programm zugeordnet.
 
Das ist auch bei Skripten so – sie werden anhand ihrer Endung an einen Interpreter übergeben.


Sie werden anhand ihrer Endung an einen Interpretor übergeben.
{| border=1 cellpadding="2"
{| border=1 cellpadding="2"
|-
|-
! Endung
! Endung
! Interpretor
! Interpreter
|-
|-
| .pl
| .pl
Zeile 23: Zeile 23:
|}
|}


== Der Interpret in der Linuxwelt ==
== Der Interpreter in der Linux-Welt ==


* Unter Unix/Linux entscheidet nicht die Dateiendung welchem Interpret ein Skript übergeben wird
* Unter Unix/Linux entscheidet nicht die Dateiendung, welchem Interpreter ein Skript übergeben wird.
* Dateiendungen sind optional und eher für die Organisation gedacht
* Dateiendungen sind optional und dienen eher der Organisation.
* Der Dateityp und damit der Interpret wird durch die ersten Bytes des Dateiinhalts selbst bestimmt
* Der Dateityp – und damit der Interpreter – wird durch die ersten Bytes des Dateiinhalts bestimmt.
* '''echo "echo Hallo Welt" > skript'''
* '''echo "echo Hallo Welt" > skript'''
* '''file skript'''
* '''file skript'''
Zeile 33: Zeile 33:
  skript: ASCII text
  skript: ASCII text


* Hier sehen wir, dass es als normaler ASCII Text interpretiert wird.
* Hier sehen wir, dass die Datei als normaler ASCII-Text erkannt wird.
* Bei einem Programmaufruf wird es einfach der aktuellen Shell übergeben (es gibt außer der bash noch andere Shells z.B. bourne-shell (bsh), korn-shell (ksh), ash.
* 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'''
* '''chmod +x skript'''
* '''./skript'''
* '''./skript'''
Zeile 40: Zeile 40:
  Hallo Welt
  Hallo Welt


* Um sicherzugehen, dass es 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.
* 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 ''#!'' (Gobang Operator/Shebang) als Interpret für das Skript benutzt
* Dadurch wird das Programm, welches hinter dem ''#!'' (Shebang/Gobang Operator) steht, als Interpreter für das Skript verwendet.


  #!/bin/bash
  #!/bin/bash
Zeile 48: Zeile 48:
  pwd
  pwd


Selbst in der C shell ist somit sichergestellt, dass das Skript der Bash übergeben wird
* Selbst in der C-Shell ist somit sichergestellt, dass das Skript der Bash übergeben wird.


* '''csh'''
* '''csh'''
Zeile 56: Zeile 56:


= Aufgaben =
= Aufgaben =
* Reihen sie die Befehle: '''ls''', '''ip a''' und '''id''' in einem Skript aneinander und führen sie es aus
* 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?
* Wie bestimmt man, welcher Shell das Skript übergeben wird?
* Welche Möglichkeiten gibt es ein Skript aufzurufen?
* Welche Möglichkeiten gibt es, ein Skript aufzurufen?
* Und wie unterscheiden sie sich?
* Und wie unterscheiden sich diese Möglichkeiten?

Aktuelle Version vom 12. Oktober 2025, 21:06 Uhr

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?