我在一个脚本中发出“退出”命令,这个脚本就像“退出”一样,但会关闭正在运行的bash终端。 我知道该怎么做退出的唯一方法是:任何方式从任何地方退出bash终端,但不退出脚本?
exit
但没有任何好处 - 它只是需要它作为脚本退出,而不是bash的终端会话。
我在一个脚本中发出“退出”命令,这个脚本就像“退出”一样,但会关闭正在运行的bash终端。 我知道该怎么做退出的唯一方法是:任何方式从任何地方退出bash终端,但不退出脚本?
exit
但没有任何好处 - 它只是需要它作为脚本退出,而不是bash的终端会话。
您可以尝试使用top
命令找到进程ID,然后使用kill #ID
来终止进程ID。这可以结束bash会话并保持脚本运行。
好的,我会试试这个。 –
听起来就像你试图从你所在的shell中分离出一个脚本。如果你想从脚本本身的shell中分离,你可以有效地将它分叉。
#!bin/bash
forked_function() {
# This will now be in it's worn process. Check it using
# ps ax | grep forked_function
sleep 1000;
}
forked_function &
一个非常普遍的方法是使用screen
。这使您能够终端,并在稍后停止的地方回到运行的过程。如果你想要做的就是运行一个脚本,然后退出尝试使用附加到你想运行IE
script &
exit
,这将会使铬运行,但让你卸下它,它也不会关闭脚本的符号当你关闭终端时。您也可以在后台管理任务。看看man jobs
script &
jobs
您可以使用命令,如fg 1
把作业号1回前景等
你可以尝试执行该命令,就像你是一个壳proccess:
execp("exit",NULL,NULL);
好的,我会试试这个。 –
“ctrl-d”太难输入了吗? –
什么?我很困惑,无论你在哪个目录下,你都可以退出一个shell。你正在试图做什么,创建一个退出会话的命令,即使你在后台有进程?如果是这样,那么男人'不行'。另外,这与vim有什么关系? – SaintHax
我在bash(在vim MODE中)编写脚本,所以当我输入quit而不是exit时,它会做几乎相同的事情。 –