Saya telah bermain dengan es beberapa hari terakhir, dan itu (seperti rc) memiliki quirk / fitur yang hanya menjalankan skrip startupnya ( .esrc
) saat login. Cara biasa untuk menjalankan kode di setiap sesi interaktif adalah dengan meletakkan kode itu dalam %prompt
fungsi.
Tentu saja, tidak ada %prompt
fungsi jika es -l
belum pernah dijalankan.
Jadi, pertanyaannya: bagaimana Anda mengatur lingkungan login ketika Anda masuk melalui gdm atau sejenisnya, yang hanya sumber .profile (atau .xprofile, .xsession, dll.)? Yang terbaik yang saya hasilkan adalah:
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
Yang sepertinya ... mengerikan. Adakah pendekatan yang lebih baik?
shell
environment-variables
profile
gdm
james.haggerty
sumber
sumber
es
bukan shell login Anda. Bagaimana pengaturanalias es='es -l'
di.bashrc
?es
adalah shell login saya. Maaf jika saya tidak menjelaskannya. Tapi shell login tidak berjalan dalam sesi X sebelum terminal diluncurkan, setidaknya sejauh yang saya tahu.bash
, bukanes
. Tetapi ketika saya membuka jendela terminal baru, itu berjalanbash
sebagai shell login.Jawaban:
Karena tidak ada yang punya jawaban nyata, ini hack saya yang mengerikan. Beberapa shell (* rxvt misalnya) memiliki pengaturan yang memungkinkan untuk memaksa shell login. Jadi, di Anda
.Xdefaults
, Anda dapat menambahkan sesuatu yang miripYang berarti bahwa semua
urxvt256c-ml
terminal yang Anda luncurkan akan memiliki shell login secara default.Apakah itu membantu?
sumber