我目前正在编写一个创建 Ubuntu img 的脚本。
因为我想定制这样的,所以我在我的主脚本中使用 sudo chroot target bash script.sh
来更改根目录并自动启动我编写的 script.sh。
现在在脚本中,作为最后一个命令,我写了 exit
。我想退出这个根目录并返回到“正常”目录,然后继续我的脚本。
这怎么可能?
如果这有点令人困惑,请问,我会告诉你更多。
谢谢!
最佳答案
可能问题不够明确。所求即成。当执行一个简单的命令(不是 exec
并且没有 &
)时,shell 进程创建一个新进程并等待它的终止和特殊变量 $?
随退出更新。第二个进程所做的所有环境更改在退出时都会丢失,并且调用者 shell 环境不会更改,与调用命令之前相同。
如果“我的脚本”是 script.sh
那么被调用的进程从根目录退出并继续,这是不可能的。也许可以创建一个中间 caller.sh。
sudo bash caller.sh
# caller.sh
chroot target bash script.sh
# continue
关于linux - 如何进入 root shell、执行命令、退出并继续执行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44523657/