我有一个 chroot,我希望 chroot 在启动时有自己的.inputrc
文件,然后运行一个程序。
我习惯用 chroot 启动,chroot <PATH> <PROGRAM_TO_RUN>
所以我尝试了
chroot <PATH> bind -f <PATH_IN_CHROOT>/.inputrc && <PROGRAM_TO_RUN>
但后来我得到了错误:
chroot: failed to run command ‘bind’: No such file or directory
阅读readline
手册后,我看到bind
是bash
内置的。所以我尝试使用builtin
像这样运行命令:
chroot <PATH> builtin bind -f <PATH_IN_CHROOT>/.inputrc && <PROGRAM_TO_RUN>
但得到了同样的错误:
chroot: failed to run command ‘builtin’: No such file or directory
我知道通过 chroot 一起运行两个程序&&
,因为我测试过:
~# chroot <PATH> echo "yo" && echo "Hi"
yo
Hi
~#
我也知道bind
命令和builtin
命令在 chroot 中独立工作:
~# chroot <PATH> bash
/# builtin -h
bash: builtin: -h: invalid option
builtin: usage: builtin [shell-builtin [arg ...]]
/# builtin bind -h
bash: bind: -h: invalid option
bind: usage: bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]
/# bind -h
bash: bind: -h: invalid option
bind: usage: bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]
如何在命令中运行bind
命令,以便为 chrootchroot
设置自定义?.inputrc
只是一个猜测:
您正在尝试在 chroot 中运行 Bash 内置命令,如下所示:
但是你的 chroot 没有运行任何解释器,它可以理解
bind
. 以下工作是否有效:PS
如前所述
@mosvy
,首先作为答案,然后作为评论,您可以通过调用 chroot 来传递环境: