如果在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
并将它们输入到bash
started through 中chroot
。那些双引号"EOT"
应该确保 bash 传递内容而不是试图扩展变量等。因此,这echo $$
应该是内部 chrooted 的 PID bash
。
归档时间: |
|
查看次数: |
10563 次 |
最近记录: |