Zum laufen muss ssh-agentich benutzen
eval $(ssh-agent)
Warum muss ich evaldas ausgeben ssh-agent?
Warum ist es nicht so konzipiert, dass ich es einfach ausführen kann?
Hinweis: Backticks (`) wurden entfernt, da sie veraltet sind. Hier können Sie zum Beispiel mehr darüber lesen .
manSeite, für den Anfang ...
ssh-agentdass es "so entworfen" ist, es ist Unix / Linux, weil es ssh-agentin einem Kindprozess der Shell läuft. Untergeordnete Prozesse können übergeordnete Prozesse nicht ändern. Aber eine Funktion kann: weil sie im laufenden Prozess läuft. So könnten Sie eine Funktion schreiben: do_set_ssh_agent() { eval ssh-agent ; }und ausgeführt werden könnte einfach so: $ do_set_ssh_agent. Aber "Programme" werden in Linux / Unix (normalerweise) nicht als "Funktionen" installiert. Stattdessen werden Programme als Dateien installiert, die wie erwähnt in einem untergeordneten Prozess ausgeführt werden. (Sourcing-Skripte sind eine Ausnahme, aber ssh-agent ist binär.)