我正在运行 Ubuntu 14.04(64 位)。当我第一次发现这个命令xterm
时,我尝试了这个命令xterm xterm
,它开始无限地打开新的 xterm 窗口。
ctrl + C
立即停止并关闭所有窗口。
但我想看看它能走多远,让它跑多远就跑多远。它几乎耗尽了所有 RAM 并最终关闭(我认为是系统本身造成的)。
所以出于好奇,为什么/怎么会发生这种情况?
我正在运行 Ubuntu 14.04(64 位)。当我第一次发现这个命令xterm
时,我尝试了这个命令xterm xterm
,它开始无限地打开新的 xterm 窗口。
ctrl + C
立即停止并关闭所有窗口。
但我想看看它能走多远,让它跑多远就跑多远。它几乎耗尽了所有 RAM 并最终关闭(我认为是系统本身造成的)。
所以出于好奇,为什么/怎么会发生这种情况?
我(猜)这是因为你给的第一个参数
xterm
是要使用的shell -xterm bash
(或xterm /bin/bash
)xterm python
等。所以它运行
xterm
,尝试xterm
作为一个 shell 启动,它启动另一个xterm
作为那个 shell,然后另一个,另一个......您可能可以通过运行找到更多信息
man xterm
简短版本:xterm 的参数是 xterm 要执行的 shell;shell 在环境 var 中设置,因此进一步调用会进行
10 PRINT "xterm" 20 GOTO 10
递归。长版:
xterm xterm
通过将变量设置为(xterm 的第一个参数被解释为要执行的 shell)传递xterm
给 xterm 调用作为 xterm 的 shell$SHELL
xterm
xterm xterm
命令执行的xterm 执行$SHELL
- 在这种情况下,创建另一个 xterm 实例(因为$SHELL=xterm
现在)$SHELL=xterm
已经,所以新创建的 xterm 执行xterm
延伸阅读:
man xterm