2016-04-14 117 views
-1

我在一個腳本中發出「退出」命令,這個腳本就像「退出」一樣,但會關閉正在運行的bash終端。 我知道該怎麼做退出的唯一方法是:任何方式從任何地方退出bash終端,但不退出腳本?

exit 

但沒有任何好處 - 它只是需要它作爲腳本退出,而不是bash的終端會話。

+0

「ctrl-d」太難輸入了嗎? –

+0

什麼?我很困惑,無論你在哪個目錄下,你都可以退出一個shell。你正在試圖做什麼,創建一個退出會話的命令,即使你在後臺有進程?如果是這樣,那麼男人'不行'。另外,這與vim有什麼關係? – SaintHax

+0

我在bash(在vim MODE中)編寫腳本,所以當我輸入quit而不是exit時,它會做幾乎相同的事情。 –

回答

0

您可以嘗試使用top命令找到進程ID,然後使用kill #ID來終止進程ID。這可以結束bash會話並保持腳本運行。

+0

好的,我會試試這個。 –

0

聽起來就像你試圖從你所在的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回前景等

0

你可以嘗試執行該命令,就像你是一個殼proccess:

execp("exit",NULL,NULL); 
+0

好的,我會試試這個。 –