Skript Interpreten in Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „==Der Interpretor in der Windowswelt== {| border=1 cellpadding="2" |- ! Endung ! Interpretor |- | .pl | Perl |- | .py | Python |- | .bat | command.com |- | .c…“)
 
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Der Interpretor in der Windowswelt==
 
==Der Interpretor in der Windowswelt==
 +
Eine Datei wird anhand ihrer Endung einem Program zugeordnet.
  
 +
Das ist auch bei Skripten so.
 +
 +
Sie werden anhand ihrer Endung an einen Interpretor übergeben.
 
{| border=1 cellpadding="2"
 
{| border=1 cellpadding="2"
 
|-
 
|-
Zeile 18: Zeile 22:
 
| cmd.exe
 
| cmd.exe
 
|}
 
|}
==Der Interpretor in der Linuxwelt==
+
 
Unter Unix/Linux entscheidet nicht die Suffix welchem Interpretor ein Skript übergeben wird, da ja in
+
== Der Interpret in der Linuxwelt ==
der Regel keine Suffix vorhanden ist. Die Art wird durch die Datei bestimmt, und zwar durch die ersten
+
 
Bytes einer Datei. Wenn wir unser Skript mit
+
* Unter Unix/Linux entscheidet nicht die Dateiendung welchem Interpret ein Skript übergeben wird
*file skript
+
* Dateiendungen sind optional und eher für die Organisation gedacht
 +
* Der Dateityp und damit der Interpret wird durch die ersten Bytes des Dateiinhalts selbst bestimmt
 +
* '''echo "echo Hallo Welt" > skript'''
 +
* '''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 es als normaler ASCII Text interpretiert wird.
(bsh), korn-shell (ksh), ash). Um sicherzugehen, dass es der richtigen Shell übergeben wird, fuegt man  
+
* 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.
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 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.
 +
* Dadurch wird das Programm, welches hinter dem ''#!'' (Gobang Operator/Shebang) als Interpret für das Skript benutzt
 +
 
 
  #!/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 =
 +
 +
* [[Aufgaben Prinzip der Bash]]

Aktuelle Version vom 1. Juni 2023, 13:59 Uhr

Der Interpretor in der Windowswelt

Eine Datei wird anhand ihrer Endung einem Program zugeordnet.

Das ist auch bei Skripten so.

Sie werden anhand ihrer Endung an einen Interpretor übergeben.

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

Der Interpret in der Linuxwelt

  • Unter Unix/Linux entscheidet nicht die Dateiendung welchem Interpret ein Skript übergeben wird
  • Dateiendungen sind optional und eher für die Organisation gedacht
  • Der Dateityp und damit der Interpret wird durch die ersten Bytes des Dateiinhalts selbst bestimmt
  • echo "echo Hallo Welt" > skript
  • file skript
skript: ASCII text
  • Hier sehen wir, dass es als normaler ASCII Text interpretiert 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.
  • chmod +x skript
  • ./skript
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.
  • Dadurch wird das Programm, welches hinter dem #! (Gobang Operator/Shebang) als Interpret für das Skript benutzt
#!/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