[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