这个命令是做什么的? “exec bash -l”

这个命令是做什么的?

exec bash -l 

我发现这个命令作为提醒文本文件的一部分,我写了一些关于如何创build一个SSH密钥和克隆一个GIT仓库的指示,但我很久以前写了它,我不记得它做了什么。

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

如果你输入

 bash -l 

在shell提示符下,它将调用一个新的shell进程( -l使其成为登录shell)。 如果你退出这个shell进程,你将回到原来的shell进程。

打字

 exec bash -l 

意味着新的shell进程会替换当前的shell进程。 这可能稍微有些资源密集。

这样做的原因可能是新shell设置它的环境(通过阅读你的.bashrc.bash_profile等)。

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

  • Bash Startup登录shell与非登录shell不同的文件
  • Bourne Shell构建用于exec命令的文档。

(你应该可以通过输入info bash来阅读你自己系统上的手册。)

这将用新的bash shell作为登录shell来替换你当前的shell。