当前主流的操作系统都支持shell编程,本文档所述的shell编程是指Linux下的shell,讲的基本都是POSIX标准下的功能,所以,也适用于Unix及BSD(如Mac OS)。

    Linux

    Linux默认安装就带了shell解释器。

    Mac OS

    Mac OS不仅带了sh、bash这两个最基础的解释器,还内置了ksh、csh、zsh等不常用的解释器。

    Windows上的模拟器

    windows出厂时没有内置shell解释器,需要自行安装,为了同时能用grep, awk, curl等工具,最好装一个cygwin或者mingw来模拟linux环境。

    脚本解释器

    sh

    本文讲的是sh,如果你使用其它语言用作shell编程,请自行参考相应语言的文档。

    bash

    Bash是Bourne shell的替代品,属GNU Project,二进制文件路径通常是/bin/bash。业界通常混用bash、sh、和shell,比如你会经常在招聘运维工程师的文案中见到:熟悉Linux Bash编程,精通Shell编程。

    在CentOS里,/bin/sh是一个指向/bin/bash的符号链接:

    但在Mac OS上不是,/bin/sh和/bin/bash是两个不同的文件,尽管它们的大小只相差100字节左右:

    高级编程语言

    编译型语言,只要有解释器,也可以用作脚本编程,如C shell是内置的(/bin/csh),Java有第三方解释器Jshell,Ada有收费的解释器AdaScript。

    如下是一个PHP Shell Script示例(假设文件名叫test.php):

    执行:

    或者: