Bash

umount bash:警告:shell 級別 (1000) 太高,重置為 1

  • August 13, 2021

我可以掛載驅動器和映像,但無法解除安裝它們。我得到“外殼級別太高”。我希望這通常發生在腳本呼叫自身時。

是否有一些由 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 正在執行包裝腳本而不是實際的執行檔

我希望這通常發生在腳本呼叫自身時。

是的,這就是正在發生的事情。bash 腳本不斷遞歸地呼叫自己(可能與其他程序一起,即它可以是一個循環,如腳本其他程序 1其他程序 2腳本……)。

umount程序本身不呼叫 shell 腳本。也許umount已被錯誤的包裝腳本取代?查看

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

每種文件系統類型都會發生這種情況還是只有一種?您要解除安裝的映像使用什麼文件系統?如果它是一個FUSE文件系統,它上的所有操作,包括解除安裝,都涉及使用者土地程式碼。如果需要,該程式碼可以執行 bash 腳本。也許那部分程式碼有問題。

引用自:https://unix.stackexchange.com/questions/662746