Hallo Boris,<br><br><div><span class="gmail_quote">On 07/04/07, <b class="gmail_sendername">Boris Kirkorowicz</b> <<a href="mailto:boris-ml07@kirk.de">boris-ml07@kirk.de</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hallo,<br><br>Am 07.04.2007 12:37 schrieb Nico Golde:<br>>>     #!/bin/bash<br>>> oder auch:<br>>>     #!/usr/bin/env bash<br><br>was ist denn der Unterschied zwischen den beiden Schreibweisen? Es wird<br>
ja mehr als nur ein Stilelement sein, oder?</blockquote><div><br>Ja,  klar.<br><br>Also: Wenn du ein Schell-Skript schreibts, kann du  das enweder folgendermaßen aufrufen:<br><br>  sh meinsript.sh<br><br>das heißt, du rufst das Programm 'sh' auf und übergiebst dein Skript als Eingabe. So weit, so gut.
<br><br>Dann kannst du dein mit<br><br>  chmod +x meinscript.sh<br><br></div>als ausführbare Datei kennzeichnen. Damit kann es nun mit <br>  <br>  ./meinscript.sh <br><br>direkt aufgerufen werden ('./' kann auch entfallen, falls das aktuelle Directory im allgemeinen Suchpfad vorhanden ist).
<br><br>Angenommen, mein Skript meinscript.sh enthält keine Shell-Script sondern ein Ruby-Script:<br><br>#!/usr/bin/env ruby<br>(1..5).each {|i|<br>  puts i<br>}<br><br>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.
<br>Man kann dann dort entweder den direkten Pfad des Interpreters angeben. Z.B.<br><br>  #!/usr/bin/ruby<br><br>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 
<br><br>  #!/usr/bin/env ruby<br><br>welches das Skript mit dem Programm startet, das man auch über 'which ruby' erhalten würde.<br><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Wenn man Shellprogrammierung lernt, lernt man in der Regel<br>> keine Bash-Programmierung, falls doch, schreibt man da
<br>> #!/bin/bash rein, falls nicht lässt man es.<br><br>Wofür ist die Zeile überheupt genau da, bzw. was passiert oder kann<br>passieren, wenn man sie weglässt?</blockquote><div><br>So weit ich weiß, startet eine Leerzeile am  Anfang eines Skript und nicht vorhandener '#!' -Zeile  die  'sh'.
<br><br>Gruß<br>-Thomas<br><br></div></div>