Kann ich unter Solaris einen Befehl als Alias ​​für mehrere mögliche Speicherorte verwenden?

2

Nehmen wir an, ich habe ein Skript namens bob. Es könnte an zwei Orten sein: /usr/local/bin/boboder /usr/local/bin/scripts/bob. Gibt es eine Möglichkeit, einen Alias bobfür beide Standorte zu erstellen, und der Vorgang wird beendet, sobald er gefunden wird bob? Also, wenn bobes /usr/local/bin/bobdrin ist, hört es dort auf, sonst schaut es hinein /usr/local/bin/scripts/bob?

Thomas Owens
quelle

Antworten:

7

Dafür ist Ihre PATH-Umgebungsvariable vorgesehen.

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

Also in deinem Beispiel /usr/local/binsollte das früher im PATH sein als /usr/local/bin/scripts.

Die meisten Systeme sind wahrscheinlich /usr/local/binbereits im Systempfad enthalten, sodass Sie Ihren Shell-Startskripten nur den zweiten Speicherort hinzufügen müssen. Wenn Sie verwenden bash, würde dieser Befehl Folgendes tun:

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

Andere Schalen variieren.

Quacksalber
quelle
1
+1: Genau das, was ich hier gesagt habe. Bin-Verzeichnisse sind ohnehin ein guter Ort, um Befehle zu speichern. Anstatt Ihr Skriptverzeichnis in den Pfad einzufügen, möchten Sie möglicherweise Links zu Ihren Skriptbefehlen in das bin-Verzeichnis einfügen. Dies ist jedoch eine persönliche Präferenz.
Satanicpuppy