Wie füge ich Exporte zu Fisch wie in .bashrc hinzu?

50

Ich wollte nur in der Lage sein, in eine Fischkonfigurationsdatei (weiß nicht, welche / wo) die gleiche Funktion wie diese einzufügen:

export PERL5LIB=/home/iaco/workspace/perl:/home/iaco/devtools

Diese Zeile wurde in die .bashrc-Datei eingefügt und konnte die Variable bei jedem Öffnen eines Terminals exportieren.

Gibt es so etwas für Fische? Ich weiß, dass ich mit dem Befehl "set" Variablen in Fische exportieren kann, aber ich möchte eine Datei ändern (weiß nicht, welche), um diese Variablen bei jedem Öffnen eines Fischterminals automatisch hinzuzufügen.

Vielen Dank für Ihre Zeit!

Jorge Castro
quelle

Antworten:

50

Sie können die benutzerspezifische Fischkonfiguration einschließlich festgelegter Anweisungen eingeben ~/.config/fish/config.fish. Der Inhalt sollte ungefähr so ​​aussehen

set -x PERL5LIB /home/iaco/workspace/perl:/home/iaco/devtools

Weitere Informationen finden Sie in der Dokumentation .

Adam Byrtek
quelle
Vielen Dank, Adam. Der Hauptzweck dieser Änderung ist es, in der Lage zu sein, den Pfad meiner lokalen Bibliotheken in Perl @inc aufzunehmen. Nachdem Sie die von Ihnen vorgeschlagene Zeile hinzugefügt haben, wurde der Export ordnungsgemäß durchgeführt! Wenn ich aber perl -VI starte, werden die neuen Pfade nicht angezeigt. Ich weiß, dass dies eher eine Perl-Frage als eine
Ich hätte die -xFlagge erwähnen sollen . Ich habe gerade die Antwort aktualisiert und Sie können mehr darüber im Abschnitt "Exportieren von Variablen" in der Dokumentation lesen.
Adam Byrtek
1
Die Haupt-Fischseite ist nicht erreichbar, aber die Dokumentation von der Fischgabel finden Sie unter ridiculousfish.com/shell/user_doc/html/commands.html#set (ich gehe davon aus, dass es dasselbe ist).
Daniel James
Hat Fisch Zugang zu Umgebungsvariablen wie $ PATH?
Bewilligung am
@grant yes, $PATHetc kann in fish verwendet werden, auch in config.fish.
Scribblemacher
19

Verwenden Sie universelle Variablen, die in fish 2.0.0 eingeführt wurden. -xbedeutet exportiert und -Ubedeutet, dass es für jede Fischsession deklariert ist. Sie können auch die langen Optionen --exportund verwenden --universal.

set -xU PERL5LIB /home/iaco/workspace/perl:/home/iaco/devtools

Bitte beachten Sie, dass die PATHVariable ein Sonderfall ist. Während PATHuniversell geändert werden, wird dies Ihre aktuellen PATH - Variablen beeinflussen (was ein bisschen ein Problem sein kann, wenn ein zusätzlicher Pfad durch ein Betriebssystem eingeführt werden). Für PATHvariable verwenden fish_user_pathsvariable statt (die Pfade fügt nur). Die Variable ist ein Array, dh Sie müssen keine :Zeichen eingeben .

set -U fish_user_paths /home/iaco/workspace/perl/share/bin /home/iaco/bin $fish_user_paths
Konrad Borowski
quelle
Ja, du hast recht!
Nishant