我在C语言中编写/调试一个在while(1)循环上运行的shell,每次我退出shell时,它都会使用exit()关闭终端,我用它来运行可执行文件所以我不断打开另一个终端并回到我的工作区目录,以便继续工作。 我认为这是学习如何在我当前工作目录中打开另一个终端进程的一个很好的理由。
PS。我知道一个更好的解决方案,为了效率,我将学习如何结束我的可执行文件而不关闭我的终端,但这不是我要求的。
答案 0 :(得分:2)
在bash shell中,执行bash
以在运行可执行文件之前打开子shell。 Id est,运行bash
作为您在可执行文件之前运行的命令。因此,当您的可执行文件终止自身并且它是shell时,只会终止子shell。
bash -c name_of_your_executable
正如您在问题中提到的,更好的解决方案是在不终止shell的情况下结束可执行文件。