在 fish shell 启动中添加“ssh-add”命令的最佳位置在哪里?

在 fish shell 启动中添加“ssh-add”命令的最佳位置在哪里?

有一次,我ssh-add向文件中添加了一个调用config.fish。因此,每次我打开终端时,它都会运行几秒钟。

有没有更好的地方可以设置它,以便它在登录时运行?或者我真的需要它在每个终端上运行吗?

答案1

要仅在 fish 中的登录 shell 中运行命令,您可以使用:

if status is-login
  ssh-add
end

您可以在config.fish当前使用的 中执行此操作,也可以通过将此功能移动到 之类的程序中来使事情更加模块化~/.config/fish/conf.d/01_ssh-add,这将在启动时自动获取。缺点是它如果你忘记检查,启动时调试起来会更困难conf.d。不过,一旦你习惯了它,我认为 conf.d 在 fish 中更加地道。

答案2

您可以将其设置为条件。用于ssh-add -l列出添加的键。如果添加了任何内容,它将以0代码退出,否则以退出1。我不熟悉 fish 的语法,但在类似 bash 的 shell 中,您可以使用类似这样的内容:

ssh-add -l > /dev/null || ssh-add

相关内容