[linux-l] Datum in Script verwenden

Thomas Preymesser thopre at gmail.com
So Apr 8 01:07:41 CEST 2007


Hallo Boris,

On 07/04/07, Boris Kirkorowicz <boris-ml07 at kirk.de> wrote:
>
> Hallo,
>
> Am 07.04.2007 12:37 schrieb Nico Golde:
> >>     #!/bin/bash
> >> oder auch:
> >>     #!/usr/bin/env bash
>
> was ist denn der Unterschied zwischen den beiden Schreibweisen? Es wird
> ja mehr als nur ein Stilelement sein, oder?


Ja,  klar.

Also: Wenn du ein Schell-Skript schreibts, kann du  das enweder
folgendermaßen aufrufen:

  sh meinsript.sh

das heißt, du rufst das Programm 'sh' auf und übergiebst dein Skript als
Eingabe. So weit, so gut.

Dann kannst du dein mit

  chmod +x meinscript.sh

als ausführbare Datei kennzeichnen. Damit kann es nun mit

  ./meinscript.sh

direkt aufgerufen werden ('./' kann auch entfallen, falls das aktuelle
Directory im allgemeinen Suchpfad vorhanden ist).

Angenommen, mein Skript meinscript.sh enthält keine Shell-Script sondern ein
Ruby-Script:

#!/usr/bin/env ruby
(1..5).each {|i|
  puts i
}

dann kann die sh-Shell damit in der Regel nicht viel damit anfangen. Deshalb
wird in der  Zeile die mit '#/' anfängt angeben, mit welchem Interpreter das
folgende Skript ausgeführt werden soll.
Man kann dann dort entweder den direkten Pfad des Interpreters angeben. Z.B.

  #!/usr/bin/ruby

oder aber, was wesentlich portabler ist, weil unter einem anderen System der
Ruby-Interpreter vielleicht irgendwo unter /usr/local/ruby installiert sein
könnte, schreibt man

  #!/usr/bin/env ruby

welches das Skript mit dem Programm startet, das man auch über 'which ruby'
erhalten würde.

> Wenn man Shellprogrammierung lernt, lernt man in der Regel
> > keine Bash-Programmierung, falls doch, schreibt man da
> > #!/bin/bash rein, falls nicht lässt man es.
>
> Wofür ist die Zeile überheupt genau da, bzw. was passiert oder kann
> passieren, wenn man sie weglässt?


So weit ich weiß, startet eine Leerzeile am  Anfang eines Skript und nicht
vorhandener '#!' -Zeile  die  'sh'.

Gruß
-Thomas
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20070408/b7f5db96/attachment.html>


Mehr Informationen über die Mailingliste linux-l