Bashでプッシュ深さを検出しますか?

Bashでプッシュ深さを検出しますか?

pushdBashシェルは、プログラムでスタックが空でない時期を検出できるようにしたいです。これを検出する方法はありますか?

$SLVLに似た方が良いでしょう。しかし、これまで私が見つけた唯一の解決策は、深さを検出するために生の出力を解析するエイリアスで合計をラップすることですpushdpopdこれが機能している間、特にエレガントであるとは感じません。 (明らかに情報は環境のどこかに保存されます。)

私の理由は、この場合、プッシュされた深さカウントで私のbashプロンプトを飾りたいからです。

答え1

DIRSTACK長さを確認できます:

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

DIRSTACKこの方法を設定しないと使用できませんのでご注意ください。

答え2

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

もう一つの劣った解決策です。

関連情報