如何输入root shell,执行命令,退出并继续脚本?

时间:2017-06-13 13:56:12

标签: linux bash shell command-line

我目前正在编写一个创建Ubuntu img的脚本。 由于我想自定义,我在主脚本中使用sudo chroot target bash script.sh来更改根目录并自动启动我编写的script.sh。

现在在脚本中,作为最后一个命令,我写了exit。我想退出这个根目录,然后回到" normal"一个然后想继续我的脚本。 这怎么可能?

如果这有点令人困惑,请问,我会告诉你更多。

谢谢!

1 个答案:

答案 0 :(得分:1)

也许问题不够明确。问的是它做了什么。执行简单命令(不是exec且没有&)时,shell进程会创建一个新进程并等待其终止,并使用exit更新特殊变量$?。第二个进程完成的所有环境更改在退出时都会丢失,并且调用方shell环境不会更改,与调用命令之前相同。

如果“我的脚本”是script.sh,那么被调用的进程从根目录退出并继续,这是不可能的。也许可以创建一个中间的caller.sh。

sudo bash caller.sh

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