小编vag*_*ant的帖子

在bash中执行chroot中的函数

在bash中,将函数传递给主机chroot的理想方法是什么?

例如,

install_script () {
    wget some_source_files && configure && make && make install
}
Run Code Online (Sandbox Code Playgroud)

和,

some_command -v foo >/dev/null 2>&1 || install_script
Run Code Online (Sandbox Code Playgroud)

但如果我想从主机执行同样的操作,我该怎么做呢?

我能想到的一种方法是将函数传递给chrooted目录中的文件,

cat > $chrooted_dir/etc/install_script.sh <<"EOF"

#!/bin/bash
wget source_files ; ./configure ; make ; make install

EOF
Run Code Online (Sandbox Code Playgroud)

并从主机执行,

chroot $chrooted_dir /bin/bash "check_command  || /etc/install_script.sh"
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更优雅的方式来解决这个问题?理想情况下,我想从主机中的cript执行命令,并在chroot系统内执行一些安装.

PS:我也很欣赏任何相关的源/链接来理解bash句柄函数声明和随后对chrooting的继承.

linux bash shell chroot

2
推荐指数
1
解决办法
1831
查看次数

标签 统计

bash ×1

chroot ×1

linux ×1

shell ×1