Bash에서 푸시 깊이를 감지합니까?

Bash에서 푸시 깊이를 감지합니까?

pushdBash 셸에서 프로그래밍 방식으로 스택이 비어 있지 않은 시기를 감지 할 수 있기를 원합니다 . 이것을 감지할 수 있는 방법이 있나요?

$SLVL과 비슷한 것이 좋을 것입니다. 하지만 지금까지 제가 찾은 유일한 해결책은 깊이를 감지하기 위해 원시 출력을 구문 분석하는 별칭으로 합계를 래핑하는 것입니다 pushd. popd이것이 작동하는 동안 특별히 우아하다고 느껴지지는 않습니다. (분명히 정보는 환경 어딘가에 저장됩니다.)

내 이유는 이 경우 푸시된 깊이 카운트로 내 bash 프롬프트를 장식하고 싶기 때문입니다.

답변1

DIRSTACK길이를 확인할 수 있습니다 :

$ [[ ${#DIRSTACK[@]} -gt 1 ]] && echo dir stack non-empty

DIRSTACK이 방법을 설정하지 않으면 사용할 수 없으니 주의하세요.

답변2

depth=$( ( $(dirs -v | wc -l) -1) )

또 다른 열등한 솔루션입니다.

관련 정보