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


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команда вызывалась ..


@JohnMetta, смотрите ссылку в вопросе и funtoo.org/wiki/Keychain . Вам нужно будет установить программу.
jamessan

Извините, с моей стороны было глупо оставлять это. Я на самом деле не хотел связку ключей - я искал замену команды «source» и фактически не читал. Использование .это то, что мне было нужно.
JohnMetta

Спасибо за включение [ -e $HOME/.keychain/$HOSTNAME-fish ]; and . $HOME/.keychain/$HOSTNAME-fishстроки. Это заставило мою связку ключей работать и перестало спрашивать меня о парольной фразе каждый раз, когда я хотел нажать.
CJM


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.