如果在shell脚本中我写
chroot /home/mayank/chroot/codebase
cd SBC
Run Code Online (Sandbox Code Playgroud)
当我运行这个 shell 脚本时,它确实进入chroot但不执行命令cd SBC,当我退出时chroot它会执行cd SBC。
如何通过 shell 脚本实现某些功能chroot并执行命令chroot?
当您在chroot不告诉它要做什么的情况下运行时,它会尝试启动 chroot 交互式 shell 会话。所以你的脚本会在那个时候“暂停”,当你完成那个交互式 shell 会话时,它会再次从 chroot 中继续运行。
一种快速而肮脏的选择是滥用此处的文档,如下所示:
chroot /home/mayank/chroot/codebase /bin/bash <<"EOT"
cd /tmp/so
ls -l
echo $$
EOT
Run Code Online (Sandbox Code Playgroud)
这需要所有行,EOT并将它们输入到bashstarted through 中chroot。那些双引号"EOT"应该确保 bash 传递内容而不是试图扩展变量等。因此,这echo $$应该是内部 chrooted 的 PID bash。
| 归档时间: |
|
| 查看次数: |
10563 次 |
| 最近记录: |