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.