Estou executando o Ubuntu 14.04 (64 bits). Quando descobri o comando xterm
, tentei o comando xterm xterm
e ele começou a abrir infinitamente novas janelas xterm.
ctrl + C
pára imediatamente e fecha todas as janelas.
Mas eu queria ver até onde ele vai e deixá-lo correr o máximo possível. Ele consumiu quase toda a RAM e acabou sendo fechado (acho que pelo próprio sistema).
Então, só por curiosidade, por que / como isso acontece?
command-line
xterm
CluelessNoob
fonte
fonte
SHELL
a variável de ambiente para os programas encontrados em/etc/shells
(solicitado pelo patch / relatório de Al Poole)". (As respostas explicam o que há com aSHELL
variável de ambiente).Respostas:
Eu acho que isso ocorre porque o primeiro parâmetro que você fornece
xterm
é o shell a ser usado -xterm bash
(ouxterm /bin/bash
),xterm python
etc.Então ele roda
xterm
, tenta começarxterm
como um shell, que inicia outroxterm
como aquele shell, depois outro e outro ...Você provavelmente pode encontrar um pouco mais sobre isso executando
man xterm
fonte
xterm
conjuntos$SHELL
paraxterm
e inicia outroxterm
como seu shell. Esse outroxterm
usa o comando$SHELL
, pois é shell, iniciando assim outroxterm
...xterm
como essa". Por que isso acontece? Obrigado @FlorianDiesch por explicar essa parte.xterm
começa a segundaxterm
como sua concha, o segundoxterm
começa a terceiraxterm
como sua concha, o terceiro inicia o quarto como seu shell ... etcxterm
começa o segundoxterm
: é porque você digitouxterm xterm
. Mas por que o segundoxterm
começa o terceiroxterm
? Você não digitouxterm xterm xterm
, por isso não é óbvio por que o terceiroxterm
começa. O comentário de Florian explica o porquê.gnome-terminal
?Versão curta: o argumento do xterm é o shell a ser executado pelo xterm; shell é definido no ambiente var, portanto, outras chamadas fazem uma
10 PRINT "xterm" 20 GOTO 10
recursão.Versão longa:
xterm xterm
passaxterm
para a chamada xterm como shell do xterm, definindo a$SHELL
variável comoxterm
(o 1º parâmetro do xterm é interpretado como shell a ser executado)xterm xterm
comando executa o$SHELL
- nesse caso, criando outra instância do xterm (porque$SHELL=xterm
agora)$SHELL=xterm
já, então o xterm recém-criado executaxterm
Leitura adicional:
man xterm
fonte