Wie können Skripte unter OS X von überall ausgeführt werden?

0

Ich habe meinen Skriptordner korrekt zu meinem $ PATH hinzugefügt. Aber ich kann die Skripte immer noch nicht von überall ausführen, indem ich sie einfach aufrufe. Wie erreiche ich das?

Beispiel. Wenn ich ~/scripts/auf meinem Weg ~/scripts/bin und auf dem ich foo.shbin, möchte ich in der Lage sein, irgendwo zu sein und zu tippen foound es ausführen zu lassen foo.sh. Wenn ich tippe, echo $PATHsehe ich, dass mein scriptsOrdner korrekt in meinem Pfad enthalten ist. Ich habe es auch foo.shausführbar gemacht, denn wenn ich cdin das scriptsVerzeichnis gehe und foo.shes richtig eingebe , läuft es.

Was vermisse ich?

Jesse Atkinson
quelle

Antworten:

2

Wenn Sie " foo.sh" eingeben, werden Sie wahrscheinlich Ihr Skript starten, da der Pfad dazu jetzt in Ihrer " $PATH" Datei enthalten ist.

Im Moment weiß die Shell einfach nicht, wie sie " foo" auf " foo.sh" abbilden soll .

Vielleicht müssen Sie nur einen Alias ​​zu Ihrer .tcshrc / .bashrc- alias foo foo.shDatei (z. B. " ") oder einen tatsächlichen Dateisymlink (z. B. " ln -s foo foo.sh") zu Ihrem Skript hinzufügen, und schon sind Sie fertig .

Michael Dautermann
quelle
oder entfernen Sie einfach die .shErweiterung, die eigentlich nicht notwendig ist
prodigitalson
OK. Wenn ich also foo.shirgendwo tippe, funktioniert es, aber es funktioniert einfach foonicht. Prodigitalson wie erhalten Sie es, damit Sie die Dateierweiterung nicht angeben müssen?
Jesse Atkinson
Ich habe dir zwei mögliche Lösungen angeboten, Jesse. Welches scheint Ihnen einfacher zu sein?
Der einzige Weg, um das zu erreichen, was ich ohne Angabe der Dateierweiterung erreichen möchte, besteht darin, einen Symlink oder einen Alias ​​festzulegen.
Jesse Atkinson
@JesseAtkinson Ich vermute, Sie kommen aus einem Windows-Hintergrund, in dem Sie den .exeTeil nicht eingeben müssen, um ihn auszuführen foo.exe, und Windows "weiß", dass Dateien mit bestimmten Erweiterungen ausführbar sind. Dies liegt daran, dass frühere Versionen von Windows keine Dateiberechtigungen / ausführbare Dateien wie OSX / Unix / Linux hatten. Jetzt, da Sie OSX (BSD Unix unter der Haube) verwenden, müssen Sie sich nur noch an das andere System gewöhnen. Sie können einer Datei einen beliebigen Namen geben, und solange Sie das XBit setzen, können Sie sie ausführen, müssen jedoch den vollständigen Namen eingeben .
MattDMo
0

Nach Ihrer Beschreibung sollte es funktionieren, mit Ausnahme des Teils, in dem Sie den Alias ​​foo to foo.sh verwenden möchten. Haben Sie Ihr .profile, .bashrc oder die Stelle, an der Sie später die Änderung an PATH vorgenommen haben, erneut als Quelle angegeben? Als nächstes können Sie einen Alias ​​aus foo foo.sh hinzufügen.

Randy Howard
quelle