这个命令做什么用的?"exec bash -l"

mat*_*sco 6 unix linux shell exec

这个命令做什么用的?

exec bash -l
Run Code Online (Sandbox Code Playgroud)

我发现这个命令是一个提醒文本文件的一部分,我写了一些关于如何创建一个ssh密钥并克隆一个git repo的说明,但是我很久以前就写过它,我不记得它做了什么.

Kei*_*son 15

exec 执行指定的命令,替换当前进程而不是启动新的子进程.

如果你输入

bash -l
Run Code Online (Sandbox Code Playgroud)

在shell提示符下,它将调用一个新的shell进程(-l使其成为登录shell).如果退出该shell进程,您将返回到原始shell进程.

打字

exec bash -l
Run Code Online (Sandbox Code Playgroud)

表示新的shell进程替换了当前的shell进程.它的资源密集程度可能略低.

这样做的原因很可能是使新的外壳设置其环境(通过读取你的.bashrc,.bash_profile等).

有关更多信息,请参阅bash文档:

(您应该可以通过键入来阅读您自己系统上的手册info bash.)