Skript Interpreten in Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
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, 19: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?