Bashシェル内で、pushd
スタックが空でないことをプログラムで検出できるようにしたいと思います。これを検出する方法はありますか?
$ SHLVLに似たものがいいでしょう。しかし、これまでのところ、私が見つけた唯一の解決策は、pushd
とpopd
を、オリジナルの出力を解析して深さを検出するエイリアスでラップすることです。それはうまくいくでしょうが、それは特にエレガントに感じません。 (明らかに、情報は環境のどこかに保存されています。)
私の理由は、これが当てはまる場合、プッシュされた深度カウントでbashプロンプトを飾りたいからです。
DIRSTACK
の長さを確認できます:
$ [[ ${#DIRSTACK[@]} -gt 1 ]] && echo dir stack non-empty
DIRSTACK
が設定されていない場合、このメソッドを使用できないことに注意してください。
depth=$( ( $(dirs -v | wc -l) -1) )
別の劣った解決策です。