2017-06-13 288 views
0

我目前正在編寫一個創建Ubuntu img的腳本。 由於我想自定義,我在我的主腳本中使用sudo chroot target bash script.sh來更改根目錄並自動啓動由我寫的script.sh。如何進入root shell,執行命令,退出並繼續執行腳本?

現在在腳本中,作爲最後一條命令,我寫了exit。我想退出此根目錄並返回到「正常」目錄,然後想要繼續使用我的腳本。 這怎麼可能?

如果這有點令人困惑,只需詢問,我會告訴你更多。

謝謝!

+0

請顯示您的代碼。由於Stack Overflow隱藏了你的密切原因:*尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現它的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:[如何創建最小,完整和可驗證示例](https://stackoverflow.com/help/mcve)。* – jww

回答

1

也許問題不夠清楚。所要求的是它做了什麼。執行簡單命令時(不是exec而不是&),shell進程會創建一個新進程並等待其終止,並使用退出更新特殊變量$?。第二個進程完成的所有環境更改在退出並且調用方shell環境未更改時都會丟失,與調用命令之前一樣。

如果「我的腳本」是script.sh那麼被調用的進程從根目錄退出並繼續,這是不可能的。也許可以創建一箇中間caller.sh。

sudo bash caller.sh 

# caller.sh 
chroot target bash script.sh 
# continue