交互式和非标准 shell 特性详解
1. 常用 POSIX 兼容 shell 简介
在日常使用中,有两种常见的 POSIX 兼容 shell,分别是 Korn shell 和 Bash。Korn shell 由 AT&T 贝尔实验室的 David Korn 开发,它与 System V Bourne shell 和 POSIX 标准 shell 向上兼容,在 Sun、HP 和 IBM 的标准 Unix 发行版中都能找到,并且是 MIPS 工作站的默认 shell。Bash 全称为 Bourne - Again Shell,由 Brian Fox 为自由软件基金会开发,同样与 System V Bourne shell 和 POSIX 标准 shell 向上兼容,还包含了 Korn 和 C shell 的许多扩展,是 Linux 系统的标准 shell。除了一些细微差别,Bash 和 Korn shell 提供了 POSIX 标准 shell 的所有功能以及许多新特性。
2. 获取合适的 shell
大多数 shell 遵循一种约定,允许你选择特定的程序来运行文件。如果文件第一行的前两个字符是#!,那么该行的其余部分指定了文件的解释器。例如:
#!/usr/bin/ksh指定使用 Korn shell;
#!/usr/bin/bash指定使用 Bash。如果你使用了某个 shell 特有的结构,可以利用这个特性强制该 shell 运行你的程序,避免兼容性问题。需要注意的是,你可以在这里指定