Kann ich unter Solaris einen Befehl an mehrere mögliche Standorte senden?

806
Thomas Owens

Nehmen wir an, ich habe ein Skript aufgerufen bob. Es kann sich an zwei Orten befinden: /usr/local/bin/boboder /usr/local/bin/scripts/bob. Gibt es eine Möglichkeit, Aliasnamen bobfür beide Standorte festzulegen, und es wird angehalten, wenn es gefunden wird bob? Also wenn bobes /usr/local/bin/bobdrin ist, wird es dort aufhören, sonst wird es reinschauen /usr/local/bin/scripts/bob?

2

1 Antwort auf die Frage

7
quack quixote

Dafür gibt es Ihre Umgebungsvariable PATH.

Ordnen Sie Ihre PATH-Umgebungsvariable so an, dass sich beide Standorte auf dem Pfad UND in der Reihenfolge befinden, in der sie überprüft werden sollen.

In Ihrem Beispiel /usr/local/binsollte also früher in PATH als /usr/local/bin/scripts.

Die meisten Systeme haben wahrscheinlich /usr/local/binbereits einen Systempfad, so dass Sie nur den zweiten Speicherort zu den Shell-Startskripts hinzufügen müssen. Bei Verwendung bashwürde dieser Befehl Folgendes tun:

export PATH=$PATH:/usr/local/bin/scripts 

Andere Schalen variieren.

+1: Genau das, was ich hierher gekommen bin, um es zu sagen. Bin-Verzeichnisse sind ohnehin ein guter Ort, um Befehle zu speichern. Anstatt Ihr Skriptverzeichnis in den Pfad zu setzen, möchten Sie möglicherweise Verknüpfungen zu Ihren Skriptbefehlen im bin-Verzeichnis einfügen. Dies ist jedoch eine persönliche Präferenz. Satanicpuppy vor 14 Jahren 1