有一次,我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