如果我在shell脚本中写道
chroot /home/mayank/chroot/codebase
cd SBC
当我运行这个外壳脚本时,它确实会进入chroot
,但不会执行命令cd SBC
,当我退出chroot
时,它会执行cd SBC
。
如何通过外壳脚本在chroot
中实现chroot
和执行命令?
发布于 2018-07-13 02:19:35
当您在没有告诉chroot
该做什么的情况下运行它时,它将尝试启动chrooted交互式shell会话。因此,您的脚本将在此时“暂停”,当您完成这个交互式shell会话时,它将再次退出chroot。
其中一个快捷的选择是在这里滥用-document,如下所示:
chroot /home/mayank/chroot/codebase /bin/bash <<"EOT"
cd /tmp/so
ls -l
echo $$
EOT
它将所有行传递到EOT
,并将它们提供给通过chroot
启动的bash
。"EOT"
两边的双引号应该确保bash传递内容,而不是试图扩展变量等。因此,echo $$
应该是内部chrooted bash
PID。
发布于 2018-07-13 15:06:46
我找到了一个解决方案,
chroot /work3/tmp_GU/$build_env/sbcbuild/chroot./test.sh
在chroot给出一个脚本之后,它对我来说工作得很好。
chroot文件夹中存在test.sh。test.sh中的所有命令都将在chroot文件夹中执行。
所以基本上在chroot之后给出一个命令
曼罗特
chroot选项NEWROOT [命令参数...]
https://stackoverflow.com/questions/51305706
复制相似问题