Aby uruchomić, ssh-agent
muszę użyć
eval $(ssh-agent)
Dlaczego mam do eval
wyjścia ssh-agent
?
Dlaczego nie jest tak zaprojektowany, że mogę go po prostu uruchomić?
Uwaga: Backticks (`) są usuwane, ponieważ są przestarzałe. Możesz na przykład przeczytać więcej na ten temat tutaj .
man
strona, na początek ...
ssh-agent
że jest „zaprojektowany w ten sposób”, jest to unix / linux, ponieważ ssh-agent
działa w potomnym procesie powłoki. Procesy potomne nie mogą modyfikować procesów macierzystych. Ale funkcja może: ponieważ działa w bieżącym procesie. Więc można napisać funkcję: do_set_ssh_agent() { eval
ssh-agent ; }
i które mogą być uruchamiane po prostu jako: $ do_set_ssh_agent
. Ale „programy” nie są (zazwyczaj) instalowane jako „funkcje” w systemie Linux / UNIX; zamiast tego programy są instalowane jako pliki, które, jak wspomniano, działają w procesie potomnym. (Skrypty zaopatrzenia są wyjątkiem, ale ssh-agent jest binarny.)