Saya menjalankan Ubuntu 14.04 (64 bit). Ketika saya pertama kali mengetahui tentang perintah tersebut xterm
, saya mencoba perintah itu xterm xterm
, dan itu mulai membuka jendela xterm baru tanpa batas.
ctrl + C
segera menghentikannya dan menutup semua jendela.
Tapi saya ingin melihat seberapa jauh dan membiarkannya berjalan selama mungkin. Ini memakan hampir semua RAM dan akhirnya ditutup (saya pikir oleh sistem itu sendiri).
Jadi hanya karena penasaran, mengapa / bagaimana ini terjadi?
command-line
xterm
CluelessNoob
sumber
sumber
SHELL
variabel lingkungan ke program yang ditemukan/etc/shells
(diminta oleh tambalan / laporan oleh Al Poole)". (Jawabannya menjelaskan ada apa denganSHELL
variabel lingkungan).Jawaban:
Saya (tebak) ini karena parameter pertama yang Anda berikan
xterm
adalah shell untuk menggunakan -xterm bash
(atauxterm /bin/bash
),xterm python
dll.Jadi itu berjalan
xterm
, mencoba untuk memulaixterm
sebagai shell, yang memulai yang lainxterm
sebagai yang shell, lalu yang lain, dan yang lain ...Anda mungkin dapat menemukan lebih banyak tentang ini dengan menjalankan
man xterm
sumber
xterm
set$SHELL
kexterm
dan mulai lagixterm
sebagai cangkangnya. Yang lainxterm
menggunakan perintah$SHELL
sebagai shell sehingga memulai yang lainxterm
, ...xterm
sebagai yang shell". Mengapa itu terjadi? Terima kasih @FlorianDiesch untuk menjelaskan bagian itu.xterm
memulai yang keduaxterm
sebagai cangkangnya, yang keduaxterm
mulai yang ketigaxterm
sebagai cangkangnya, yang ketiga mulai yang keempat sebagai cangkangnya ... dllxterm
memulai yang keduaxterm
: itu karena Anda mengetikxterm xterm
. Tetapi mengapa yang keduaxterm
memulai yang ketigaxterm
? Anda tidak mengetikxterm xterm xterm
, jadi tidak jelas mengapa yang ketigaxterm
dimulai. Komentar Florian menjelaskan alasannya.gnome-terminal
?Versi singkat: Argumen xterm adalah shell untuk dieksekusi oleh xterm; shell diatur dalam lingkungan var, jadi panggilan lebih lanjut melakukan
10 PRINT "xterm" 20 GOTO 10
rekursi.Versi panjang:
xterm xterm
beralihxterm
ke panggilan xterm sebagai shell xterm dengan mengatur$SHELL
variabel kexterm
(parameter pertama xterm diartikan sebagai shell yang akan dieksekusi)xterm xterm
perintah Anda mengeksekusi$SHELL
- dalam kasus ini, membuat instance xterm lainnya (karena$SHELL=xterm
sekarang)$SHELL=xterm
sudah, jadi xterm yang baru dibuat dijalankanxterm
Bacaan lebih lanjut:
man xterm
sumber