Linux 如何进入根shell、执行命令、退出并继续使用脚本?
我目前正在写一个创建Ubuntu img的脚本。 因为我想定制这样的脚本,所以我在主脚本中使用Linux 如何进入根shell、执行命令、退出并继续使用脚本?,linux,bash,shell,command-line,Linux,Bash,Shell,Command Line,我目前正在写一个创建Ubuntu img的脚本。 因为我想定制这样的脚本,所以我在主脚本中使用sudo chroot target bash script.sh来更改根目录并自动启动我编写的script.sh 现在在脚本中,作为最后一个命令,我编写了exit。我想退出这个根目录,回到“正常”目录,然后继续我的脚本。 这怎么可能 如果这是一个有点困惑,只要问,我会告诉你更多 谢谢 也许这个问题还不够清楚。问题是它做了什么。当执行一个简单的命令时(不是exec,也没有&),shell进程创建一个新进
sudo chroot target bash script.sh
来更改根目录并自动启动我编写的script.sh
现在在脚本中,作为最后一个命令,我编写了exit
。我想退出这个根目录,回到“正常”目录,然后继续我的脚本。
这怎么可能
如果这是一个有点困惑,只要问,我会告诉你更多
谢谢 也许这个问题还不够清楚。问题是它做了什么。当执行一个简单的命令时(不是
exec
,也没有&
),shell进程创建一个新进程并等待其终止,特殊变量$?
用exit更新。当第二个进程退出时,它所做的所有环境更改都将丢失,并且不会更改调用方shell环境,与调用命令之前相同
如果“我的脚本”是script.sh
,那么调用的进程将从根目录退出并继续,这是不可能的。也许可以创建一个中间caller.sh
sudo bash caller.sh
# caller.sh
chroot target bash script.sh
# continue
请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。