这个命令是干什么用的?
exec bash -l
我在一个提醒文本文件中找到了这个命令,其中我写了一些关于如何创建SSH密钥和克隆Git Repo的指令,但是我很久以前就写了它,现在我不记得它的作用是什么。
exec
执行指定的命令,替换当前进程而不是启动一个新的子进程。
如果您输入:
bash -l
在shell提示符下,它会调用一个新的shell进程(-l
使其成为登录shell)。如果你退出该shell进程,你将回到原始的shell进程。
输入
exec bash -l
意味着新的shell进程替代了当前的shell进程。这可能会稍微减少资源消耗。
这样做的原因可能是为了让新的shell设置其环境(通过读取您的.bashrc
、.bash_profile
等文件)。
有关更多信息,请参阅bash文档:
exec
命令的文档。(您可以通过输入info bash
在自己的系统上阅读手册。)
这将用一个新的bash shell替换您当前的shell,并作为登录shell运行。
exec
的bash -l
会这样做。请参见我的答案。 - Keith Thompson