Saya menggunakan layar setiap hari untuk kebutuhan terminal saya dan saya cukup senang dengannya. Baru-baru ini, meskipun, saya membuat beberapa update ke file konfigurasi pesta saya dan saya menyadari bahwa saya sedang menyiapkan berbagai PATH
elemen ( PATH
, MANPATH
, INFOPATH
, dll) di 2 tempat. Saya memodifikasi file menjadi apa yang seharusnya dan sekarang semua variabel lingkungan saya diatur sekali .bash_profile
. Di sinilah letak masalah saya.
Rupanya, alasan saya mengaturnya di dua tempat adalah karena layar. layar tampaknya hanya mengeksekusi .bashrc
dan tampaknya tidak mewarisi PATH
variabel lingkungan saya atau lainnya dengan benar dari shell bash asli saya. Karena hanya mengeksekusi .bashrc
dan saya sekarang mengatur variabel saya .bash_profile
saja, saya mendapatkan tidak lengkap PATH
.
Pertanyaan saya adalah bagaimana cara memasukkan variabel lingkungan saya ke layar tanpa duplikasi. Membaca Bash
dokumen tampaknya menunjukkan bahwa itu bisa menjadi jenis shell yang digunakan layar untuk masuk, yaitu shell interaktif non-login tapi saya tidak tahu cara memaksa layar untuk menggunakan jenis shell tertentu, hanya saja shell untuk digunakan via -s /bin/bash
.
Anda dapat membaca dengan teliti file konfigurasi saya di halaman GitHub saya . Ini adalah komit yang merusak layar .
EDIT: Saya menggunakan Screen version 4.00.03 (FAU) 23-Oct-06
dan saya cenderung memintanyascreen -h 50000
EDIT: Saya sekarang bisa menguji ini di Cygwin ( CYGWIN_NT-5.1 1.7.1(0.218/5/3) i686
, Screen version 4.00.03 (FAU) 23-Oct-06
) dan menunjukkan perilaku yang berbeda dari pada Mac saya.
Perilaku spesifik yang sekarang saya temukan adalah bahwa dalam Cygwin perubahan yang saya buat PATH
di .bash_profile diduplikasi saat memasuki layar dan kemudian pembuatan jendela layar berturut-turut tidak menduplikasi jalur tetapi melakukan sumber ulang .bash_profile.
Untuk menggambarkan perilaku yang saya bicarakan:
Output dari terminal baru:
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
Output dari permintaan pertama layar:
[~]$ screen -h 50000 -s -/bin/bash
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man:/home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man:/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
Panggilan selanjutnya ke C-a c
:
...
PATH: /home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/home/tvishe01/bin/emacs/bin:/home/tvishe01/bin:/usr/local/bin:/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/ATI Technologies/ATI.ACE/Core-Static:/groovy-1.6.1/bin:/usr/lib/lapack
MANPATH: /home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man:/home/tvishe01/share/man:/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man:/usr/ssl/man
Aliases:
alias ..='cd ..'
alias ...='cd ../..'
...
[~]$
Anda bisa lihat