バッシュ:ネストされたセッションの深さはいくつですか?


9

私がbashシェルを開始したとし
ます...そして、bashそのシェル内からの別のセッション
...そしてbashそのセッション内からの別のセッション
...そしてbashそのセッション内からの別のセッション
...(回N)など

Nセッションをすべて終了するには、exitN回入力する必要があります。

特定のbashセッション内からネストされている深さを確認するにはどうすればよいですか?

理想的には$STY、スクリーンセッションと同様の環境変数を探しています。

回答:


16

を使用しSHLVLます。からman bash

SHLVL  Incremented by one each time an instance of bash is started.

例:

$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ bash
$ echo $SHLVL
3

これは良いことですが、設定にわずかな問題があることに気づきましたexec。-.xinitrc は1つのシェルを通常のプロセスとして開始しますが、別のシェルを使用しています(そのため、このターミナルが閉じると、XSession全体が終了します)。$SHLVLこれらの端末に対して2つの異なる番号を生成します。よりシェル固有の環境変数はありますか?
tetris11

$BASH_SUBSHELL有望に見えたが、配信されません。
tetris11

1
@ tetris11Yeah..thats how SHLVLwork..check this solution if it fit ..
heemayl

1
ああ、もちろん-私は手動で設定することができますSHLVL=0~/.xinitrc
すばらしい
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.