pushd
Bash 셸에서 프로그래밍 방식으로 스택이 비어 있지 않은 시기를 감지 할 수 있기를 원합니다 . 이것을 감지할 수 있는 방법이 있나요?
$SLVL과 비슷한 것이 좋을 것입니다. 하지만 지금까지 제가 찾은 유일한 해결책은 깊이를 감지하기 위해 원시 출력을 구문 분석하는 별칭으로 합계를 래핑하는 것입니다 pushd
. popd
이것이 작동하는 동안 특별히 우아하다고 느껴지지는 않습니다. (분명히 정보는 환경 어딘가에 저장됩니다.)
내 이유는 이 경우 푸시된 깊이 카운트로 내 bash 프롬프트를 장식하고 싶기 때문입니다.
답변1
DIRSTACK
길이를 확인할 수 있습니다 :
$ [[ ${#DIRSTACK[@]} -gt 1 ]] && echo dir stack non-empty
DIRSTACK
이 방법을 설정하지 않으면 사용할 수 없으니 주의하세요.
답변2
depth=$( ( $(dirs -v | wc -l) -1) )
또 다른 열등한 솔루션입니다.