Skript Interpreten in Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(6 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
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 Interpretor in der Linuxwelt==
== Der Interpreter in der Linux-Welt ==
Unter Unix/Linux entscheidet nicht die Suffix welchem Interpretor ein Skript übergeben wird, da ja in
 
der Regel keine Suffix vorhanden ist.  
* 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'''


Die Art wird durch die Datei bestimmt, und zwar durch die ersten
Bytes einer Datei. Wenn wir unser Skript mit
*file skript
  skript: ASCII text
  skript: ASCII text
untersuchen sehen wir, dass es als normaler ASCII Text interpretiert wird. Bei einem Programmaufruf wird  
 
es einfach der aktuellen Shell übergeben (es gibt ausser der bash noch andere Shells z.B. bourne-shell
* Hier sehen wir, dass die Datei als normaler ASCII-Text erkannt wird.
(bsh), korn-shell (ksh), ash). Um sicherzugehen, dass es der richtigen Shell übergeben wird, fuegt man  
* 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).
an den Skriptanfang einfach ein #! an, in unserem Fall ein #!/bin/bash für die Bourne-Again Shell.
* '''chmod +x skript'''
Das bedeutet ,dass das Programm welches hinter dem #! (Gobang Operator) steht der Interpretor ist,  
* '''./skript'''
dem das Skript übergeben wird.
 
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
  #!/bin/bash
  date
  date
  hostname
  hostname
  pwd
  pwd
Selbst in der C shell ist somit sichergestellt ,dass das Skript der Bash übergeben wird
 
*file skript
* 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
  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?

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?