Detecta a profundidade do pushd no bash?

1

Eu gostaria de poder detectar programaticamente quando minha pilha pushd não está vazia, dentro de um shell bash. Existe alguma maneira de detectar isso?

Algo parecido com $ SHLVL seria legal. Mas até agora, a única solução que encontrei é envolver pushd e popd com aliases que analisam a saída dos originais para detectar a profundidade. Enquanto isso funcionaria, não parece particularmente elegante. (Claramente, a informação é armazenada em algum lugar no ambiente.)

Meu motivo é, eu desejo adornar meu prompt bash com uma contagem de profundidade pushd, quando este for o caso.

    
por Ryan V. Bissell 30.03.2016 / 06:32

2 respostas

4

Você pode verificar DIRSTACK length:

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

Observe que você não pode usar este método se DIRSTACK não estiver definido.

    
por 30.03.2016 / 06:44
2
depth=$( ( $(dirs -v | wc -l) -1) )

é outra solução inferior.

    
por 30.03.2016 / 12:21

Tags