GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Terminal Baru Di Spawn Luar Biasa Dengan Shlvl>1?

Saya memiliki PS1 yang menunjukkan SHLVL jika bukan 1 untuk melihat dengan cepat apakah saya berada dalam subkulit. Ini berfungsi seperti yang diharapkan saat menggunakan GNOME, tetapi ketika saya menelurkan terminal baru di Awesome WM (Mod4 +Kembali ) selalu dimulai dengan SHLVL=2 atau lebih tinggi. Apakah ini normal?

Ini berhubungan langsung dengan berapa kali saya memulai ulang Awesome (Mod4 +Ctrl +r atau pkill -HUP awesome ). Apakah ada cara untuk menghindari munculnya cangkang baru saat memulai ulang?

Komit ini tampaknya relevan, karena Awesome akhirnya menjalankan sesuatu seperti $SHELL -c ... di HUP , tapi saya tidak cukup tahu C untuk memperbaikinya.

/bin/sh saya adalah dash dan shell login saya adalah bash .

Melaporkan masalah ini.

Jawaban yang Diterima:

Saya rasa saya mengerti alasannya, tetapi saya tidak memiliki perbaikan yang lengkap.

Perilaku SHLVL tergantung cangkangnya. Di tanda hubung dan ksh (baik pdksh dan ksh93), hanya instance interaktif yang menambah SHLVL . Di bash dan zsh, semua instance menambah SHLVL , bahkan bash -c … .

Jika Anda mengamati perubahan perilaku setelah patch ini, kemungkinan /bin/sh . Anda adalah tanda hubung dan $SHELL your Anda adalah bash. Sebelumnya , awesome sedang mengeksekusi /bin/sh -c … yang tidak mengubah SHLVL . Setelah patch, sekarang menjalankan $SHELL -c … , yaitu bash -c … , yang menambah SHLVL .

Anda bisa menipu dengan mengubah SHLVL dalam Mengagumkan. Hubungkan ke kode startup untuk mengurangi SHLVL oleh 1. Saya cukup yakin ini mungkin tanpa mengkompilasi ulang kode C, meskipun saya tidak tahu kode Lua.


Linux
  1. Sisipkan Baris Baru Dengan Nilai yang Hilang (na)?

  2. Mengapa Xargs Tidak Dapat Bekerja Dengan Tail -f?

  3. Mengapa Samba Tidak Menambahkan Pengguna Baru Dengan "samba-tool"?

  1. Mengapa keluar kode 141 dengan grep -q?

  2. gema teks dengan baris baru di bash

  3. Mengapa menjalankan perintah shell Linux dengan '&'?

  1. Apa yang baru dengan rdiff-backup?

  2. Mengapa saya jatuh cinta dengan Antergos Linux

  3. Mengapa Saya Bisa Masuk Dengan Kata Sandi Sebagian??