linux - 如何进入 root shell、执行命令、退出并继续执行脚本?

标签 linux bash shell command-line

我目前正在编写一个创建 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/

相关文章:

linux - 使用 awk 查找两个以上文件中共有的行

bash - 根据内容拆分 .txt 文件

linux - 我如何知道我是否在运行嵌套 shell?

linux - 为什么 sed 不接受 shell 变量?

c# - 在C#中执行一个shell命令到串口单声道

linux - Cassandra - 数据统计

linux - 对两列的制表符分隔文件进行排序和统一

linux - Bash递归地替换名称上的许多空格

mysql - 如何在shell脚本中将MySQL查询输出转换为数组?

linux - 当没有输入参数时,如何使用 getopts 来避免运行脚本?