为了运行ssh-agent
我必须使用
eval $(ssh-agent)
为什么我要eval
输出ssh-agent
?
为什么不设计它以便我可以运行它?
注意:不推荐使用反引号(`)。例如,您可以在此处阅读有关它的更多信息。
谁说您必须使用eval?是什么决定了这一点?多一点上下文会有所帮助。
—
0xSheepdog
@ 0xSheepdog
—
jasonwryan
man
页面,开始...
看起来用例记录在手册页中。至于“为什么要设计某种方式” …… 耸耸肩。
—
0xSheepdog
重申一下,它不是
—
迈克尔
ssh-agent
“以这种方式设计的”,而是unix / linux,因为ssh-agent
它在外壳的子进程中运行。子进程不能修改父进程。但是一个函数可以:因为它在当前进程中运行。因此,您可以编写一个函数:do_set_ssh_agent() { eval
ssh-agent ; }
,并且可以将其简单地运行为:$ do_set_ssh_agent
。但是“程序”并没有(通常)在linux / unix中安装为“功能”。而是将程序作为文件安装,如上所述,这些文件在子进程中运行。(采购脚本是一个例外,但是ssh-agent是二进制的。)