Answers:
exec false通过命令的执行替换当前的shell false(这里不是shell内建但/bin/false还是不管false这是第一位的可执行文件PATH),它迅速退出。如果外壳程序是您的终端仿真器中运行的最顶层进程,则其中没有更多的进程在运行,因此终端仿真器已关闭。
这是关闭终端的一种可接受的替代方式,就像许多类似的命令一样:
exec true
exec sleep 0
exec echo
...
另请参阅:执行命令命令做什么
bash将在调用之前执行某些清理,exec包括将命令写入.bash_history。因此,如果只想保存到.bash_history同一终端窗口中并在其中启动新外壳程序,则可以键入exec bash。
exec调用PATH,而不是内置命令。例如,exec [[ $USER = root ]]将返回bash: exec: [[: not found错误。在OP的情况下,false称为/bin/false,而不是内置的shell。否则,答案很好,因此为+1。附带说明一下,exec可以是某种截断命令,即,如果将示例中的这三个命令制作为脚本,那么除了第一个命令外,其他任何操作exec都无法实现,因为exec它将用右边的任何命令替换脚本调用的shell的exec。