Wie lässt man "./" weg, wenn Skripte im aktuellen Verzeichnis ausgeführt werden?


10

In einigen Tutorials über das Internet können sie ein Skript im aktuellen Verzeichnis ausführen, ohne Folgendes zu tun:

./script

Wie lässt du das weg? Ich verwende CentOS 5.6 x64. Ich möchte es so laufen lassen

script


3
Beachten Sie, dass dies fast immer eine schlechte Idee ist, insbesondere für den Root-Benutzer.
David Schwartz

1
Was ist der ganze Zweck / die ganze Geschichte hinter dem ./ überhaupt?
Pete

Ich bin nur neugierig, warum es immer haben muss ./
Aivan Monceller

Der letzte Kommentar könnte meiner Meinung nach eine separate Frage sein - es ist wichtig zu verstehen, wie man Programme im Allgemeinen ausführt!
Rozcietrzewiacz

4
@Pete (und Aivan): Unter Linux / UNIX führt die Shell Programme nur aus, wenn sie den Pfad zu ihnen kennt (ob mithilfe eines von Ihnen angegebenen Pfads oder durch Durchsuchen der PATH-Variablen). Es wird nicht davon ausgegangen, dass Sie das aktuelle Verzeichnis wie Windows durchsuchen möchten. Es sucht genau das, was Sie von ihm verlangen, über die Variable PATH. '.' ist ein Verweis auf das aktuelle Verzeichnis. Wenn Sie also './script.sh' eingeben, geben Sie den Pfad an.
Kasius

Antworten:


26

Irgendein von:

  1. Fügen Sie Ihrem PATH das aktuelle Arbeitsverzeichnis hinzu: PATH=${PATH}:.(Dies wird als Sicherheitsrisiko angesehen.)
  2. Fügen Sie der PATH-Variablen explizit den Pfad hinzu, der Ihr Skript enthält (dies ist kein Sicherheitsrisiko, wenn der Schreibzugriff auf dieses Verzeichnis eingeschränkt ist).
  3. Platzieren Sie Ihr Skript an der richtigen Stelle, auf die PATH bereits verweist (~ / bin, / usr / local / bin, ...).

Die letzte Option ist möglicherweise die beste.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.