📜  Thompson Shell和POSIX Shell之间的区别(1)

📅  最后修改于: 2023-12-03 15:05:35.352000             🧑  作者: Mango

Thompson Shell 和 POSIX Shell 之间的区别

介绍

在Unix操作系统中,Shell是用户与操作系统交互的主要方式。Thompson Shell和POSIX Shell是Unix操作系统中两种不同的Shell。

Thompson Shell是Unix操作系统中最早的Shell,设计者为Ken Thompson。它是UNIX v1到v6版本中默认的Shell。而POSIX Shell是遵循ISO POSIX 标准的Shell。POSIX Shell功能更加强大,支持更多的特性。

区别
1. 语法

Thompson Shell和POSIX Shell的语法存在一些不同。

Thompson Shell脚本可以忽略结束符号(;)。而在POSIX Shell中,需要在每个语句末尾添加结束符号。

Thompson Shell中可以用set --来将参数传递给脚本,而在POSIX Shell中需要使用shift命令实现。

Thompson Shell脚本中,用反斜杠\表示换行符以换行,而在POSIX Shell中,使用\表示转义字符。

2. 变量

Thompson Shell中的变量可以是全局变量或局部变量,可以使用任何字母、数字、下划线命名变量。而POSIX Shell中变量的命名必须使用字母数字字符和下划线。在POSIX Shell中,可以使用${variable}来引用变量,而在Thompson Shell中则是直接使用变量名。

3. 命令

Thompson Shell和POSIX Shell都支持外部命令和内部命令。

Thompson Shell中使用``````来执行单行命令,使用\``来执行多行命令。而POSIX Shell中,使用$()来执行单行命令,使用()`来执行多行命令。

4. 文件名

Thompson Shell中,文件名可以不区分大小写,而POSIX Shell中文件名区分大小写。

5. 文件描述符

Thompson Shell只支持输入输出重定向,默认情况下标准错误(stderr)被重定向到标准输出(stdout)。而POSIX Shell提供了更强大的文件描述符功能,可以在脚本中打开文件,并将文件描述符与文件相关联。

总结

Thompson Shell和POSIX Shell都是Unix操作系统中广泛使用的Shell。它们在语法、变量、命令、文件名和文件描述符等方面存在一些不同。程序员可以根据实际情况选择不同的Shell来编写脚本。