如何在 bash 脚本中退出 iterminal?

如何在 bash 脚本中退出 iterminal?

我想在终端中使用 bash 脚本启动带有 proxychains 的 emacs,然后退出终端。但是代码

(proxychains emacs &)
exit 0

不要退出终端。有什么办法吗?

答案1

尝试这个测试脚本。

t.sh

#!/bin/bash
sleep 5
echo bye bye
sleep 5
pid=$( ps -f | grep "bash" | grep -v grep )
kill -HUP $pid

好的,打开一个新的命令行终端窗口。从该窗口中,执行刚刚创建的 bash 脚本(假设您将其命名为“t.sh”,如上所示)。

bash t.sh

您应该看到命令行窗口在 10 秒后消失,因为 shell 脚本通过杀死启动它的 bash 进程来自杀。

我认为可能有一种更简单的方法可以做到这一点,但我不记得那是什么。

无论如何,根据您的描述,我认为这就是您想要实现的目标。

编辑:

我其实并不喜欢上面的解决方案。在我看来,你真正想要做的可能是在后台运行 bash 脚本并使用“nohup”,这样你就可以注销。

然后发生的情况是,该过程将继续运行直到完成,然后消失,这基本上就是我认为您所要求的。

你可以这样做:

t1.sh

#!/bin/bash
echo "I am doing my thing then leaving" > /tmp/t1.log
sleep 10
exit 0

然后从命令行:

nohup bash t1.sh &

然后继续并注销。

15 秒后返回,您应该有一个文件“/tmp/t1.log”,其中包含您的输出。

相关内容