GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya tahu jika saya menjalankan shell bersarang?

$SHLVL variabel melacak tingkat sarang shell Anda:

$ echo $SHLVL
1
$ bash
$ echo $SHLVL
2
$ exit
$ echo $SHLVL
1

Sebagai alternatif untuk pemijahan sub-kulit, Anda dapat mendorong dan mengeluarkan direktori dari tumpukan dan tetap berada di cangkang yang sama:

[[email protected] /old/dir]# pushd /new/dir
/new/dir /old/dir
[[email protected] /new/dir]# popd
/old/dir
[[email protected] /old/dir]#

Ini adalah versi sederhana dari bagian prompt saya:

PS1='$(((SHLVL>1))&&echo $SHLVL)\$ '

Jika saya tidak berada di shell bersarang, itu tidak menambahkan apa pun, tetapi ini menunjukkan kedalaman jika saya berada di level bersarang apa pun.


Lihat $0 :jika diawali dengan minus - , Anda berada di shell login.


Linux
  1. Bagaimana Cara Membuat Variabel Lingkungan "diekspor" Dalam Skrip Shell Tetap Di Sekitar?

  2. Shell mana yang saya jalankan?

  3. Bagaimana Mengetahui Jika Dd Masih Bekerja?

  1. Bagaimana Bash Tahu Bagaimana Itu Dipanggil?

  2. Bagaimana Cara Memeriksa Kemajuan Running Cp?

  3. Bagaimana Mengetahui Jika Ip Multicast Diaktifkan?

  1. Cara Mengganti Shell di Linux

  2. Cara Membunuh Proses yang Berjalan di Linux

  3. Menjalankan skrip shell secara paralel