bash: предупреждение: уровень оболочки (1000) слишком высокий, сброс на 1

14

Я просто попытался запустить эту команду:

/etc/ssl/acme/acme.sh --log /var/log/p3x/acme/acme.sh.log --home /etc/ssl/acme --force --issue -d patrikx3.tk -w /var/www/acme-challenge

Я получил эту ошибку:

bash: предупреждение: уровень оболочки (1000) слишком высокий, сброс на 1

Что это за ошибка?

Патрик Ласло
источник
Это происходило Makefileиз-за того, как и где (внутри ifneqпредложения) я выполнял команды, которые я буду использовать vagrant ssh -c, мне приходилось запускать его в рамках одного оператора, используя &&. Может быть, это кому-то поможет.
NuclearPeon

Ответы:

16

Уровень оболочки определяет уровень вложенной оболочки во вложенной оболочке

Баш человек - Shell Level SHLVL

SHLVL - увеличивается на единицу каждый раз, когда запускается новый экземпляр Bash.

  • Это предназначено для подсчета того, насколько глубоко вложены ваши оболочки Bash.

Как вы можете видеть здесь

Когда bashвыполняется сам уровень оболочки bash выше в 1

Следующий рекурсивный вызов bash:

$ echo "bash haha" > haha
$ bash haha

Получал это сообщение периодически:

bash: предупреждение: уровень оболочки (1000) слишком высокий, сброс на 1

Смысл ошибки выше в том, что bash вызывал себя 1000 раз

Другой пример того, как переменная $ SHLVL отслеживает уровень вложенности вашей оболочки:

$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ exit
$ echo $SHLVL
1
Ярон
источник
ты знаешь как избавиться от этой ошибки? Я не изменился на своем сервере, но теперь вижу, что он находится в CURL: bash: Warning: Уровень оболочки (1000) слишком высокий, сброс на 1
Патрик Ласло
1
ааа, я понял, у меня были те же сценарии скручивания, и это было рекурсивно, это, еще раз спасибо, чао!
Патрик Ласло
@PatrikLaszlo - Рад это слышать. Если мой ответ решил ваш вопрос, пожалуйста, примите его
Ярон
как я могу принять? Я нажал Вверх и все, нет кнопки «Принять» :(
Патрик Ласло