Я использую Ubuntu 14.04 (64 бит). Когда я впервые узнал о команде xterm
, я попробовал команду xterm xterm
, и она начала бесконечно открывать новые окна xterm.
ctrl + C
немедленно останавливает его и закрывает все окна.
Но я хотел посмотреть, как далеко он зайдет, и позволить ему бегать так долго, как может. Он израсходовал почти всю оперативную память и в конечном итоге был закрыт (я думаю, сама система).
Так, просто из любопытства, почему / как это происходит?
Я (предположение), которое это вызвано тем, что первый параметр Вы даете xterm
, оболочка для использования - xterm bash
(или xterm /bin/bash
), xterm python
и т.д.
, Таким образом, это выполняет xterm
, пытается запуститься xterm
как оболочка, которая запускает другой xterm
как та оболочка, затем другой и другой...
можно, вероятно, найти немного больше на этом путем выполнения man xterm
Короткая версия: аргументом xterm является оболочка для выполнения xterm; оболочка установлена в var среды, поэтому дальнейшие вызовы делают 10 PRINT "xterm" 20 GOTO 10
рекурсия.
версия Long:
xterm xterm
передачи xterm
к вызову xterm как оболочка xterm переменной установки $SHELL
к xterm
(1-й параметр xterm интерпретируется как оболочка для выполнения) xterm xterm
команда выполняется $SHELL
- в этом случае, уже создавая другой xterm экземпляр (потому что $SHELL=xterm
теперь) $SHELL=xterm
, таким образом, недавно созданный xterm выполняется xterm