Hallo Liste. Ich habe da eine Verständnisfrage zur Bash. In der OpenVPN-Anleitung steht, ich solle ". ./vars" ausführen. Das ist eine Datei, deren x-Bit nicht gesetzt ist. Sie wird dann auch ausgeführt. Mache ich dagegen ein ./vars, dann kommt der Hinweis "keine Berechtigung". Wie erklärt sich das? Danke und Gruß. -- Andre Tann
Andre Tann wrote:
In der OpenVPN-Anleitung steht, ich solle ". ./vars" ausführen. Das ist eine Datei, deren x-Bit nicht gesetzt ist. Sie wird dann auch ausgeführt. Mache ich dagegen ein ./vars, dann kommt der Hinweis "keine Berechtigung". Wie erklärt sich das?
Das x-Bit braucht gar nicht gesetzt zu sein, weil du mit ". ./vars" deine Shell anweist, die Datei "vars" zu lesen und die darin enthaltenen Shell-Befehle auszuführen. Mit "./vars" weist du deine Shell dagegen an, die Datei "vars" auszuführen. Also dürfte sie zuerst mal anhand der x-Bits feststellen wollen, ob du das überhaupt darfst. Und da stellt sich heraus, dass du nicht darfst. -- Viele Grüße ------------------------------------------------------------------------ Michael
Michael Behrens, Montag, 3. April 2006 14:05:
Das x-Bit braucht gar nicht gesetzt zu sein, weil du mit ". ./vars" deine Shell anweist, die Datei "vars" zu lesen und die darin enthaltenen Shell-Befehle auszuf�hren.
OK. Aber wofür steht der .? Weist er nicht auf das aktuelle Verzeichnis? Mit cd . wechsle ich ja auch ins aktuelle Verzeichnis.
Mit "./vars" weist du deine Shell dagegen an, die Datei "vars" auszuf�hren. Also d�rfte sie zuerst mal anhand der x-Bits feststellen wollen, ob du das �berhaupt darfst. Und da stellt sich heraus, dass du nicht darfst.
OK, verstanden. -- Andre Tann
Andre Tann wrote:
OK. Aber wofür steht der .? Weist er nicht auf das aktuelle Verzeichnis?
Nein, hier steht der ja am Anfang der Zeile, ist deshalb ein Befehl und macht dasselbe wie der Befehl "source". Wurde wahrscheinlich um der Kürze willen eingeführt, in einer Installationsanleitung würde ich allerdings "source <file>" bevorzugen. Mit cd . wechsle ich ja auch ins aktuelle Verzeichnis. Da ist der Punkt ja auch ein Parameter, der Befehl ist "cd". -- Viele Grüße ------------------------------------------------------------------------ Michael
Hallo, Am Mon, 03 Apr 2006, Michael Behrens schrieb:
Andre Tann wrote:
OK. Aber wofür steht der .? Weist er nicht auf das aktuelle Verzeichnis?
help .
Nein, hier steht der ja am Anfang der Zeile, ist deshalb ein Befehl und macht dasselbe wie der Befehl "source". Wurde wahrscheinlich um der Kürze willen eingeführt, in einer Installationsanleitung würde ich allerdings "source <file>" bevorzugen.
Nein. Der . ist portabel und "alt", source ist eine Erweiterung. -dnh -- ... just what are we going to say to an alien race if we make contact? "Do you have Napster?" "Can we borrow one of your rainforests?" "Stop making crop circles!" -- Scott Barber, in rasfw
Hallo, Am Mon, 03 Apr 2006, Andre Tann schrieb:
Ich habe da eine Verständnisfrage zur Bash.
In der OpenVPN-Anleitung steht, ich solle ". ./vars" ausführen. Das ist eine Datei, deren x-Bit nicht gesetzt ist. Sie wird dann auch ausgeführt.
Und zwar in der aktuellen shell!
Mache ich dagegen ein ./vars, dann kommt der Hinweis "keine Berechtigung". Wie erklärt sich das?
Die shell fuehrt so nur Dateien mit gesetztem x-bit aus. Du kannst aber problemlos 'bash ./vars' machen. Allerdings laeuft das script dann in einer eigenen shell und hat keinerlei Auswirkung auf die shell, aus der heraus du das script (wie auch immer) aufrufst. Da aber vermutlich fuer die aktuelle shell Variablen gesetzt werden sollen musst du die Datei "sourcen". Und dann ist das x-bit nicht noetig. -dnh -- / "[the block drivers and the buffer cache] aren't incestuous, \ \ they're just living in sin.. " -- Linus Torvalds /
participants (4)
-
Achim Schaefer
-
Andre Tann
-
David Haller
-
Michael Behrens