Как вы «источник» файла в рыбе?

12

Я хотел бы использовать связку ключей с оболочкой fish , но я не уверен, как заставить fish загрузить файл ~ / .keychain / hostname-fish для установки соответствующих переменных среды.

В bash есть команда «source», но она не существует в fish.

Лорин Хохштайн
источник

Ответы:

13

Ниже приведен ~/.config/fish/config.fishпример вашего конкретного примера.

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

Команда источник является source, который также работает в Баш .


До рыбы 2.1.0 sourceкоманда вызывалась ..

jamessan
источник
@JohnMetta, смотрите ссылку в вопросе и funtoo.org/wiki/Keychain . Вам нужно будет установить программу.
jamessan
Извините, с моей стороны было глупо оставлять это. Я на самом деле не хотел связку ключей - я искал замену команды «source» и фактически не читал. Использование .это то, что мне было нужно.
JohnMetta
Спасибо за включение [ -e $HOME/.keychain/$HOSTNAME-fish ]; and . $HOME/.keychain/$HOSTNAME-fishстроки. Это заставило мою связку ключей работать и перестало спрашивать меня о парольной фразе каждый раз, когда я хотел нажать.
CJM
3

Используйте sourceкоманду:

source filename.txt
Элайджа Линн
источник
2

На странице документации по связке ключей рекомендуется поместить это в config.fish:

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

Затем добавьте это в начало вашего скрипта:

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

источник: http://www.funtoo.org/Keychain

Элайджа Линн
источник
0

Если файл, который вы пытаетесь найти, содержит bash, подумайте об использовании Bass .

Это позволит вам написать, например:

bass source ~/.bash_profile
newswim
источник