我在一個腳本中發出「退出」命令,這個腳本就像「退出」一樣,但會關閉正在運行的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時,它會做幾乎相同的事情。 –