umount bash:警告:shell 级别 (1000) 太高,重置为 1

umount bash:警告:shell 级别 (1000) 太高,重置为 1

我可以安装驱动器和映像,但无法卸载它们。我得到“外壳级别太高”。我预计这通常发生在脚本调用自身时。

是否有一些由 umount 运行的脚本?我不明白为什么会发生这种情况。

# alias umount
-bash: alias: umount: not found
# mount -o ro sda1.img /tmp/mm
# umount /tmp/mm
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
(repeat forever)

编辑:修复了不正确的复制/粘贴。umount没有别名

结论:

我需要运行,type umount因为我不知道 mount 正在运行包装脚本而不是实际的可执行文件

答案1

我预计这通常发生在脚本调用自身时。

是的,这就是正在发生的事情。 bash 脚本不断递归地调用自身(也许与其他程序一起调用,即它可以是一个像这样的循环脚本其他方案1其他节目2脚本……)。

程序umount本身不调用 shell 脚本。也许umount已被有缺陷的包装脚本所取代?查看

type umount
file /path/displayed/by/the/previous/command

是每种文件系统类型都会发生这种情况还是只有一种文件系统类型会发生这种情况?您要卸载的映像使用什么文件系统?如果它是一个保险丝文件系统,其上的所有操作(包括卸载)都涉及用户空间代码。如果需要,该代码可以运行 bash 脚本。也许这部分代码有问题。

相关内容