2013-06-03 74 views
0

我試圖寫一個簡單的腳本(用於嵌入式系統),其安裝從網絡外部文件,然後調用命令行上exit(其離開busybox的終端和靴系統從新裝入的根目錄中)。問題是,當我從shell腳本調用exit時,它會退出腳本,而不是外部終端。有關如何在腳本之外發送exit命令的任何提示?呼叫從外殼腳本中的「退出」

我的代碼看起來是這樣的:

#!/bin/bash 
mount /mnt/root 1.2.3.4:/path/to/external/files -o nolock 
exit # exits the script, not the outside filesystem! 
+0

好了,你的父母殼('外shell')調用其獲取一個子進程執行,一個子shell腳本。沒辦法,你可以調用在父子shell中執行的東西。但是,而不是調用腳本'/ somescript.sh',你可以叫它爲'./somescript.sh && exit' – abasu

回答

3

exit確實退出當前的shell。但是,運行該腳本會創建一個新進程,而該進程將退出,而不是您調用該腳本的shell。

你可能想簡單的將文件:

$ source myScript.sh 

然後myScript.sh在當前shell執行,而非衍生的進程,以及exit將從當前的shell退出(因此終端本身)。

1

如果你想將這些腳本退出外端調用它是這樣的:

source your_script 

或只是

. your_script 

其中.是一樣的source命令。如果您需要更多信息,您可以按照this article


說明:source將在當前外殼執行腳本,因此出口將由當前shell來解釋 - 什麼將關閉僞終端窗口,如果外殼是第一外殼(!)在樹