“exec false”如何以及为什么关闭终端?

dra*_*ord 9 command-line

我知道这可能是一个相对毫无意义的问题,但我很好奇为什么exec falseexit这样关闭终端。

我还想知道这是否是关闭终端的可接受方式。

jll*_*gre 10

exec false正在通过执行快速退出的命令false(这里不是内置的 shell,而是 中最先出现的/bin/false任何false可执行文件)来替换当前的 shell PATH。如果 shell 是终端模拟器中运行的最顶层进程,则其中没有更多进程在运行,因此终端模拟器将关闭。

这是关闭终端的一种可接受的替代方法,就像许多类似的命令一样:

exec true
exec sleep 0
exec echo
...
Run Code Online (Sandbox Code Playgroud)

另见:what-does-an-exec-command-do