脚本语言的源起与目的
脚本语言是计算机程序语言(programming languages)的一种,因此也能让开发者藉以编写出让计算机听命行事的程序。但是「以简单的方式快速完成某些复杂的事情」通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比 C、C++ 或 Java 之类的「系统程序语言」(system programming languages)「简单」、「容易」,也让脚本语言另有一些所谓「脚本语言的特性」:
• 语法和结构通常比较简单
• 学习和使用通常比较简单
• 通常以容易修改程序的「直译」作为执行方式,而不需要编译
• 程序的开发产能优于执行效能
脚本语言源自早期文字模式的命令列计算机系统,在当时只能以键盘敲入命令才能操作计算机的情况下,为了减少某些需要不断重复敲入命令的情况,计算机操作系统的命令处理器(在 UNIX 的世界这通常称为 command shell)提供了「批次操作」(batch operation)的方式,让计算机操作者可以将一整个流程的命令,循序、逐行的编排在称为「批处理」(batch file,也称为 batch jobs 或 shell scripts)的文字文件,若有相同的操作需要处理,即可加载批次档而不需再次重复敲入指令。
Shell Script
由于批处理对命令列的计算机系统操作者帮助甚大,因此操作系统的命令处理器也不断加强功能,尤其加入了许多程序语言的重要元素,包括变量、循环、条件判断等等,让计算机操作不只是循序的执行命令,而能更精确的操控计算机系统的运作;这种程序设计通常称为 shell programming。因此,不论是大型主机的系统操作员,或者是整个计算机环境的系统管理员、网络管理员,shell programming 都是相当重要的技能,这项技能可以有效且快速的管理辖下的计算机。
UNIX 系统的 shell 相当多样,例如 Bourne Shell(sh)、Bourne-Again Shell(bash)、Korn Shell(ksh)、C Shell(csh)等等;以下简述常见的 UNIXshell。
• Bourne Shell(sh):这是历史悠久且重要的 UNIX shell,是由贝尔实验室的研究员 Stephen Bourne 为第七版的 UNIX 所创造,这种 shell 的执行档扩展名就是 .sh。
• Bourne-Again Shell(bash):光从名称就能猜出 bash 与 sh 是有渊源(甚至说「血缘」)。bash 是由 Brian Fox 于 1987 年为 GNU 所创造,1990 年起,Chet Ramey 成为主要的维护者。bash 是相当流行的 shell,除了是大多数Linux 预设的 shell,在许多 UNIX-like 系统也有其踪迹(例如 Mac OS X Tiger),甚至也能通过 Cygwin 在 Windows 系统执行。
• Korn Shell(ksh):是由贝尔实验室的研究员 David Korn 在 80 年代初期所创造,ksh 除了与 sh 完全兼容,也包含了若干 C Shell 的功能。
• C Shell(csh):是由 Bill Joy(后来创办了Sun公司)为 BSD UNIX 系统所创造。csh 源自于第六版 UNIX 的 Thompson shell(是 Bourne Shell 的前身),因为语法类似 C 语言而得名。
除了上述盛行于 UNIX 环境的 shell,其它操作系统也有专属的 shell 或 shell 脚本语言,例如苹果Mac系统的 AppleScript、IBM OS/2 的 REXX(REstructured eXtended eXecutor)。而 DOS 以及早期 Windows 的 shell 则是 Command.com,但也因功能较弱,因此有 4DOS、4NT 等软件可增强功能,Windows 2000 以及之后的 Windows 则改以功能较强 cmd.exe 作为 Windows shell,并且以 Windows Script Host 作为脚本语言执行环境,大幅提高了 Windows shell 的可用性。而微软也将会推出功能更强的 Windows shell,称为 Windows PowerShell。
虽然现在许多计算机系统都提供了图形化的操作方式,但是却都没有因而停止提供文字模式的命令列操作方式,相反的,许多系统反而更加强这部份的功能,例如 Windows 就不只加强了操作命令的功能和数量,也一直在改善 shell programming 的方式。而之所以要加强、改善,当然是因为不够好;Windows 的图形化操作方式对单一客户端计算机的操作,已经相当方便,但如果是一群客户端计算机,或者是 24 小时运作的服务器计算机,图形化操作方式有时会很不方便。
宏语言
宏语言也可视为脚本语言的分支,两者也实质上的相同之处。宏语言通常附属于某一种软件,例如微软 Office、Visual Studio、Adobe Photoshop 都内建了宏语言的功能,使用者可利用软件所附的宏语言,达到自动化的结果(例如调整某个数据夹所有 PSD 图文件的分辨率)。而这类宏语言也大多提供录制宏的功能,自动记录使用者的键盘按键,让使用者不必写程序,就能产生宏程序。此外,C 语言和汇编语言也有宏功能,是以搜寻及取代进行编译或组译之前的前置处理。
文章来源于领测软件测试网 https://www.ltesting.net/