Estoy ejecutando Ubuntu 14.04 (64 bit). Cuando descubrí el comando por primera vez xterm
, probé el comando xterm xterm
y comenzó a abrir infinitamente nuevas ventanas xterm.
ctrl + C
lo detiene de inmediato y cierra todas las ventanas.
Pero quería ver qué tan lejos llega y dejar que corra tanto como pueda. Se comió casi toda la RAM y finalmente se cerró (creo que por el propio sistema).
Entonces, solo por curiosidad, ¿por qué / cómo sucede esto?
command-line
xterm
Despistado
fuente
fuente
SHELL
la variable de entorno en los programas que se encuentran en/etc/shells
(solicitada por parche / informe de Al Poole)". (Las respuestas explican qué pasa con laSHELL
variable de entorno).Respuestas:
Supongo que esto se debe a que el primer parámetro que le das
xterm
es el shell a usar -xterm bash
(oxterm /bin/bash
),xterm python
etc.Entonces se ejecuta
xterm
, intenta comenzarxterm
como un shell, que inicia otroxterm
como ese shell, luego otro y otro ...Probablemente pueda encontrar un poco más sobre esto ejecutando
man xterm
fuente
xterm
conjuntos de$SHELL
axterm
y comienza otroxterm
como su cáscara. Ese otroxterm
usa el comando$SHELL
ya que su shell inicia así otroxterm
, ...xterm
como ese shell". ¿Por qué pasa eso? Gracias @FlorianDiesch por explicar esa parte.xterm
inicios del segundoxterm
como su cáscara, el segundoxterm
se inicia la terceraxterm
como su cáscara, la tercera se inicia el cuarto como su cáscara, etc ...xterm
comienza el segundoxterm
: es porque escribistexterm xterm
. Pero, ¿por qué el segundoxterm
comienza el terceroxterm
? No escribistexterm xterm xterm
, así que no es obvio por quéxterm
comienza la tercera . El comentario de Florian explica por qué.gnome-terminal
?Versión corta: el argumento de xterm es el shell que ejecutará xterm; shell se establece en el entorno var, por lo que las llamadas posteriores hacen una
10 PRINT "xterm" 20 GOTO 10
recursividad.Versión larga:
xterm xterm
pasaxterm
a la llamada xterm como shell de xterm configurando la$SHELL
variable axterm
(el primer parámetro de xterm se interpreta como shell para ejecutar)xterm xterm
comando ejecuta el$SHELL
- en este caso, creando otra instancia de xterm (porque$SHELL=xterm
ahora)$SHELL=xterm
ya, entonces el xterm recién creado se ejecutaxterm
Otras lecturas:
man xterm
fuente