<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Thompson_shell</id>
	<title>Thompson shell - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Thompson_shell"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Thompson_shell&amp;action=history"/>
	<updated>2026-07-06T14:08:24Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Thompson_shell&amp;diff=1821351&amp;oldid=prev</id>
		<title>imported&gt;Mhss：​/* 参见 */</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Thompson_shell&amp;diff=1821351&amp;oldid=prev"/>
		<updated>2020-09-19T19:29:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;参见&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = Thompson shell&lt;br /&gt;
| logo                   = &amp;lt;!-- [[File: ]] --&amp;gt;&lt;br /&gt;
| screenshot             = &amp;lt;!-- [[File: ]] --&amp;gt;&lt;br /&gt;
| caption                = &lt;br /&gt;
| collapsible            = &lt;br /&gt;
| author                 = [[肯·汤普逊]]&lt;br /&gt;
| developer              = &lt;br /&gt;
| released               = {{start date|1971}}&lt;br /&gt;
| discontinued           = &lt;br /&gt;
| latest release version = &lt;br /&gt;
| latest release date    = &amp;lt;!-- {{start date and age|YYYY|MM|DD}} --&amp;gt;&lt;br /&gt;
| latest preview version = &lt;br /&gt;
| latest preview date    = &amp;lt;!-- {{start date and age|YYYY|MM|DD}} --&amp;gt;&lt;br /&gt;
| frequently updated     = &lt;br /&gt;
| programming language   = [[C语言]]&lt;br /&gt;
| operating system       = [[Unix]]&lt;br /&gt;
| platform               = &lt;br /&gt;
| size                   = &lt;br /&gt;
| language               = &lt;br /&gt;
| status                 = &lt;br /&gt;
| genre                  = [[Unix shell]]&lt;br /&gt;
| license                = &lt;br /&gt;
| website                = &lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Thompson shell&amp;#039;&amp;#039;&amp;#039;是歷史上第一個[[Unix shell]]，1971年由[[肯·湯普遜]]寫作出第一版并加入[[UNIX]]之中。它是一個簡單的命令列[[直譯器]]，但不能被用來執行指令稿（Shell script）。它的許多特徵影響了以後[[命令行界面]]的發展。至[[Version 7 Unix]]之後，被[[Bourne shell]]取代。&lt;br /&gt;
&lt;br /&gt;
Thompson shell使用的重導向命令“&amp;amp;lt;”與“&amp;amp;gt;”，以及[[管道 (Unix)|管線]]命令“|”影響到之後的[[Unix shell]]與[[MS DOS]]。&lt;br /&gt;
&lt;br /&gt;
==历史==&lt;br /&gt;
“shell”的名字和概念是从Unix的前身[[Multics]]发展过来的。应用程序通过shell来进行调用并被系统执行。&lt;br /&gt;
&lt;br /&gt;
Thompson shell设计之初就为输入和输出[[重定向 (计算机)|重定向]]设计了简单的语法。在设计Multics系统时，输入输出的重定向需要用特别的命令来表示重定向开始和重定向结束，而在Unix系统中，用户只需要简单地在命令后面附加一个“&amp;amp;lt;”或“&amp;amp;gt;”符号，再附上文件名，shell就可以在执行命令时处理输入或输出重定向。在1971年Unix发布第一个版本时，这个语法就已经被实现了。&lt;br /&gt;
&lt;br /&gt;
后来又加入了[[管道 (Unix)|管道]]的功能。在[[道格拉斯·麥克羅伊]]的建议下，重定向的功能被扩展，这样一条命令的输出就可以用作另一条命令的输入。按照版本3手册，管道功能最初的语法是：&lt;br /&gt;
&lt;br /&gt;
 command1 &amp;gt;command2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这个语法语义比较含糊，容易分不清重定向的来源和目标——系统难以分清command2是一个命令还是一个文件。到了版本4，语法就被改为了“|”和“^”符号：&lt;br /&gt;
&lt;br /&gt;
 command1 | command2&lt;br /&gt;
&lt;br /&gt;
这个语法等同于：&lt;br /&gt;
&lt;br /&gt;
 command1 ^ command2&lt;br /&gt;
&lt;br /&gt;
而“&amp;gt;”符号被改成了：&lt;br /&gt;
&lt;br /&gt;
 command1 &amp;gt; file1&lt;br /&gt;
&lt;br /&gt;
这条命令会把command1的输出内容写入到文件file1中。&lt;br /&gt;
&lt;br /&gt;
从Thompson shell诞生的“&amp;amp;lt;”、“&amp;amp;gt;”和“|”产生了深远的影响。绝大多数Unix shell和其他系统的命令行（包括[[DOS]]、[[OS/2]]、[[Windows]]等）都支持这三个符号。&lt;br /&gt;
&lt;br /&gt;
==被替代==&lt;br /&gt;
Thompson shell是按照极简主义进行设计的，语法非常简单，即使是不太复杂的“if”和“goto”也需要多条命令来实现。&amp;lt;ref name=&amp;quot;Mashey1976-10-13&amp;quot;&amp;gt;{{cite paper|url=|title=Using a Command Language as a High-Level Programming Language|publisher=Proceeding of the 2nd International Conference on Software Engineering|author=[[J. R. Mashey]]|date=1976-10-13|pages=169–176}}&amp;lt;/ref&amp;gt;在1975年[[Version 6 Unix]]发布之际，这个shell已经无法满足大多数编程任务的需要。&lt;br /&gt;
&lt;br /&gt;
这时，[[PWB/UNIX]]的开发者，特别是{{le|约翰·马沙|John Mashey}}开始修改Thompson shell的源代码，使其更适合编程。&amp;lt;ref name=Mashey1976-10-13/&amp;gt;修改之后的shell被称为[[PWB shell]]或Mashey shell，包括了高级的控制流，并引入了变量，但新功能也有所限制，以保证与Thompson shell的兼容性。&lt;br /&gt;
&lt;br /&gt;
最终，在1978年，[[Version 7 Unix]]已经把默认的shell换成了[[Bourne shell]]，而1979年时[[BSD|2BSD]]把默认shell换成了[[C shell]]。因为所有现代Unix系统和[[类Unix系统]]都是从Version 7 Unix和2BSD继承而来，所以Thompson shell基本上已经不再被使用。但是，Thompson shell作为[[Ancient UNIX]]系统的一部分，并且[[开放源代码]]，它也被移植到了现代Unix系统中，作为历史展览而出现。&lt;br /&gt;
&lt;br /&gt;
==参考文献==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==参见==&lt;br /&gt;
* [[Unix shell]]&lt;br /&gt;
&lt;br /&gt;
{{Unix Shells}}&lt;br /&gt;
{{肯·汤普逊navbox}}&lt;br /&gt;
[[Category:Unix shells]]&lt;br /&gt;
[[Category:面向文本编程语言]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Mhss</name></author>
	</entry>
</feed>