【问题标题】:My Bash script ends after entering chroot environment我的 Bash 脚本在进入 chroot 环境后结束
【发布时间】:2021-11-19 04:15:48
【问题描述】:

我的问题:

在我的脚本中的以下几行之后,脚本意外结束。我正在尝试在 bash 脚本中输入 chroot。我怎样才能完成这项工作

I am writing a script that installs Gentoo

echo " Entering the new environment"


chroot /mnt/gentoo /bin/bash 

source /etc/profile 

export PS1="(chroot) ${PS1}"

【问题讨论】:

  • 之前是否定义了PS1?使用所示的 sn-p,PS1 在定义之前就被访问了。
  • @zois 不,我刚从here.得到那个代码
  • "chroot /mnt/gentoo /bin/bash"- 此时您启动了新的子进程,因此在您退出子 bash 进程之前,不会执行其余脚本。
  • @Saboteur 好的,谢谢你告诉我。
  • @zois 没关系。默认情况下,未定义参数的扩展是空字符串,而不是错误。

标签: linux bash unix sh


【解决方案1】:

chroot 命令将启动新的子 bash 进程,因此在您退出子 bash 进程之前,不会执行脚本的其余部分。 因此,只需在 chroot 中运行您的脚本,而不是 /bin/bash:

chroot /mnt/gentoo myscript.sh

myscript.sh:

#!/bin/bash
echo " Entering the new environment"

source /etc/profile 
export PS1="(chroot) ${PS1}"

【讨论】:

  • 这根本不运行交互式shell。它以脚本的形式运行myscript.sh,当该脚本退出时,chroot 也会退出。
  • 如果您需要带有 chroot 的交互式 shell,请提出单独的问题。这个问题是关于运行脚本的。
猜你喜欢
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多