본문 바로가기
Linux/운영

[Bash] warning: shell level (1000) too high, resetting to 1 에러

by A6K 2022. 10. 21.

bash 스크립트를 수행하다가 다음 에러를 만나게 되었다.

$ ./run
/bin/bash: warning: shell level (1000) too high, resetting to 1

쉘의 레벨이 1000으로 너무 높아서 1로 리셋했다는 의미다.

쉘 스크립트를 실행할 때, 또 다른 쉘을 열어서 진행하는 경우 쉘 레벨(SHLVL) 변수를 하나씩 증가시킨다. 현재 쉘의 레벨 값은 SHLVL 변수를 조회해보면 알 수 있다.

$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ exit
$ echo $SHLVL
1

문제는 어디에선가 쉘 스크립트를 재귀적으로 호출하는 곳이 있을 때 발생한다. 다음 코드를 실행하면 동일한 에러를 재현할 수 있다.

$ echo "bash run" > run
$ ./run

스크립트 어디에선가 재귀적으로 동일한 스크립트를 호출하지 않는지 찾아보고 수정하면 된다.

댓글