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

16

这个命令是干什么用的?

exec bash -l

我在一个提醒文本文件中找到了这个命令,其中我写了一些关于如何创建SSH密钥和克隆Git Repo的指令,但是我很久以前就写了它,现在我不记得它的作用是什么。

2个回答

25

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

如果您输入:

bash -l

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

输入

exec bash -l

意味着新的shell进程替代了当前的shell进程。这可能会稍微减少资源消耗。

这样做的原因可能是为了让新的shell设置其环境(通过读取您的.bashrc.bash_profile等文件)。

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

(您可以通过输入info bash在自己的系统上阅读手册。)


1

这将用一个新的bash shell替换您当前的shell,并作为登录shell运行。


2
它不仅仅执行它;没有execbash -l会这样做。请参见我的答案。 - Keith Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接