Frage

In einem Fisch-Shell-Skript, ist es möglich, den Pfad, in dem das Shell-Skript Leben zu erhalten? In bash können Sie die BASH_SOURCE Variable verwenden, um dies zu tun.

War es hilfreich?

Lösung

Eine Möglichkeit ist den Status Befehl zu verwenden.

zB.

~/tmp> echo status -f > show_filename.fish
~/tmp> fish show_filename.fish
/home/foo/tmp/show_filename.fish

-

Ah, sorry - durch Ihren Kommentar zu urteilen, falsch verstanden habe ich die Frage. Vielleicht haben Sie den vollständigen Pfad gemeint, statt des Skripts Verzeichnis.

Sie können nur den Status Ergebnis dirname senden. Es ist nicht ein eingebaute Funktion von Fisch, wie Status, aber Fisch so viel von dieser Funktionalität auslagern neigt, wie es trotzdem kann ( „Das Gesetz des Minimalismus“ sehen, die über in dem Fisch design doc ). Ich kann nichts besser Befehle in der Dokumentation für diese sehen, so vielleicht ist dies so gut wie wir jetzt bekommen können?

das Beispiel zur Änderung des Inhalts von show_filename.fish ändern werden:

dirname (status -f)

Jetzt sollten Sie:

~/tmp> fish show_filename.fish
/home/foo/tmp
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top