我目前正在编写一个创建Ubuntu img的脚本。
由于我想自定义,我在主脚本中使用sudo chroot target bash script.sh
来更改根目录并自动启动我编写的script.sh。
现在在脚本中,作为最后一个命令,我写了exit
。我想退出这个根目录,然后回到" normal"一个然后想继续我的脚本。
这怎么可能?
如果这有点令人困惑,请问,我会告诉你更多。
谢谢!
答案 0 :(得分:1)
也许问题不够明确。问的是它做了什么。执行简单命令(不是exec
且没有&
)时,shell进程会创建一个新进程并等待其终止,并使用exit更新特殊变量$?
。第二个进程完成的所有环境更改在退出时都会丢失,并且调用方shell环境不会更改,与调用命令之前相同。
如果“我的脚本”是script.sh
,那么被调用的进程从根目录退出并继续,这是不可能的。也许可以创建一个中间的caller.sh。
sudo bash caller.sh
# caller.sh
chroot target bash script.sh
# continue