Wie "beschafft" man eine Datei in Fisch?

12

Ich würde gerne einen Schlüsselbund für die Fischschale verwenden , bin mir aber nicht sicher, wie ich Fische dazu bringen soll, die Datei ~ / .keychain / hostname-fish zu laden, um die entsprechenden Umgebungsvariablen festzulegen.

In bash gibt es den Befehl "source", der jedoch in fish nicht vorhanden ist.

Lorin Hochstein
quelle

Antworten:

13

Unten ist, was ich ~/.config/fish/config.fishfür Ihr spezifisches Beispiel habe.

set -gx HOSTNAME (hostname)
if status --is-interactive;
    keychain --nogui --clear ~/.ssh/id_rsa
    [ -e $HOME/.keychain/$HOSTNAME-fish ]; and source $HOME/.keychain/$HOSTNAME-fish
end

Der Quellbefehl ist source, der auch in bash funktioniert .


Vor Fisch 2.1.0 wurde der sourceBefehl aufgerufen ..

Jamessan
quelle
@ JohnMetta, siehe den Link in der Frage und funtoo.org/wiki/Keychain . Sie müssen das Programm installieren.
Jamessan
Entschuldigung, es war dumm von mir, das zu posten. Ich wollte eigentlich keinen Schlüsselbund - ich wollte den Befehl 'source' ersetzen und las nicht wirklich. Verwenden .ist das, was ich brauchte.
JohnMetta
Vielen Dank für die Aufnahme der [ -e $HOME/.keychain/$HOSTNAME-fish ]; and . $HOME/.keychain/$HOSTNAME-fishLinie. Das brachte meinen Schlüsselbund zum Laufen und dazu, mich nicht mehr jedes Mal nach der Passphrase zu fragen, wenn ich pushen wollte.
cjm
3

Verwenden Sie den sourceBefehl:

source filename.txt
Elijah Lynn
quelle
2

Auf der Keychain-Dokumentationsseite wird empfohlen, dies in config.fish zu speichern:

if status --is-interactive
    keychain --eval --quiet --quick path/to/id_rsa
end

Fügen Sie dies dann oben in Ihr Skript ein:

source $HOME/.keychain/(hostname)-fish

Quelle: http://www.funtoo.org/Keychain

Elijah Lynn
quelle