如何在 fish 中“获取”文件?

如何在 fish 中“获取”文件?

我想使用钥匙链shell,但我不确定如何让 fish 加载 ~/.keychain/hostname-fish 文件来设置适当的环境变量。

在 bash 中,有“source”命令,但在 fish 中不存在。

答案1

~/.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 命令source,这也在 bash 中工作


在 fish 2.1.0之前,该source命令被称为.

答案2

使用source命令:

source filename.txt

source可能最初不存在,但现在存在,并且.fish 中的别名已被正式弃用。

来自man .fish 3.6.1:

.(单个句点)是 source 命令的别名。已弃用 .,改用 source,并且将在 fish 的未来版本中删除 .。

答案3

如果你尝试获取的文件包含 bash,请考虑使用低音

这样您就可以写入,例如:

bass source ~/.bash_profile

答案4

问题通常是你使用其中source包含的内容bash,因此我:

bash

source whatever.sh

相关内容