腳本語(yǔ)言的源起與目的
腳本語(yǔ)言是計算機程序語(yǔ)言(programming languages)的一種,因此也能讓開(kāi)發(fā)者藉以編寫(xiě)出讓計算機聽(tīng)命行事的程序。但是「以簡(jiǎn)單的方式快速完成某些復雜的事情」通常是創(chuàng )造腳本語(yǔ)言的重要原則,基于這項原則,使得腳本語(yǔ)言通常比 C、C++ 或 Java 之類(lèi)的「系統程序語(yǔ)言」(system programming languages)「簡(jiǎn)單」、「容易」,也讓腳本語(yǔ)言另有一些所謂「腳本語(yǔ)言的特性」:
• 語(yǔ)法和結構通常比較簡(jiǎn)單
• 學(xué)習和使用通常比較簡(jiǎn)單
• 通常以容易修改程序的「直譯」作為執行方式,而不需要編譯
• 程序的開(kāi)發(fā)產(chǎn)能優(yōu)于執行效能
腳本語(yǔ)言源自早期文字模式的命令列計算機系統,在當時(shí)只能以鍵盤(pán)敲入命令才能操作計算機的情況下,為了減少某些需要不斷重復敲入命令的情況,計算機操作系統的命令處理器(在 UNIX 的世界這通常稱(chēng)為 command shell)提供了「批次操作」(batch operation)的方式,讓計算機操作者可以將一整個(gè)流程的命令,循序、逐行的編排在稱(chēng)為「批處理」(batch file,也稱(chēng)為 batch jobs 或 shell scripts)的文字文件,若有相同的操作需要處理,即可加載批次檔而不需再次重復敲入指令。
Shell Script
由于批處理對命令列的計算機系統操作者幫助甚大,因此操作系統的命令處理器也不斷加強功能,尤其加入了許多程序語(yǔ)言的重要元素,包括變量、循環(huán)、條件判斷等等,讓計算機操作不只是循序的執行命令,而能更精確的操控計算機系統的運作;這種程序設計通常稱(chēng)為 shell programming。因此,不論是大型主機的系統操作員,或者是整個(gè)計算機環(huán)境的系統管理員、網(wǎng)絡(luò )管理員,shell programming 都是相當重要的技能,這項技能可以有效且快速的管理轄下的計算機。
UNIX 系統的 shell 相當多樣,例如 Bourne Shell(sh)、Bourne-Again Shell(bash)、Korn Shell(ksh)、C Shell(csh)等等;以下簡(jiǎn)述常見(jiàn)的 UNIXshell。
• Bourne Shell(sh):這是歷史悠久且重要的 UNIX shell,是由貝爾實(shí)驗室的研究員 Stephen Bourne 為第七版的 UNIX 所創(chuàng )造,這種 shell 的執行檔擴展名就是 .sh。
• Bourne-Again Shell(bash):光從名稱(chēng)就能猜出 bash 與 sh 是有淵源(甚至說(shuō)「血緣」)。bash 是由 Brian Fox 于 1987 年為 GNU 所創(chuàng )造,1990 年起,Chet Ramey 成為主要的維護者。bash 是相當流行的 shell,除了是大多數Linux 預設的 shell,在許多 UNIX-like 系統也有其蹤跡(例如 Mac OS X Tiger),甚至也能通過(guò) Cygwin 在 Windows 系統執行。
• Korn Shell(ksh):是由貝爾實(shí)驗室的研究員 David Korn 在 80 年代初期所創(chuàng )造,ksh 除了與 sh 完全兼容,也包含了若干 C Shell 的功能。
• C Shell(csh):是由 Bill Joy(后來(lái)創(chuàng )辦了Sun公司)為 BSD UNIX 系統所創(chuàng )造。csh 源自于第六版 UNIX 的 Thompson shell(是 Bourne Shell 的前身),因為語(yǔ)法類(lèi)似 C 語(yǔ)言而得名。
除了上述盛行于 UNIX 環(huán)境的 shell,其它操作系統也有專(zhuān)屬的 shell 或 shell 腳本語(yǔ)言,例如蘋(píng)果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 作為腳本語(yǔ)言執行環(huán)境,大幅提高了 Windows shell 的可用性。而微軟也將會(huì )推出功能更強的 Windows shell,稱(chēng)為 Windows PowerShell。
雖然現在許多計算機系統都提供了圖形化的操作方式,但是卻都沒(méi)有因而停止提供文字模式的命令列操作方式,相反的,許多系統反而更加強這部份的功能,例如 Windows 就不只加強了操作命令的功能和數量,也一直在改善 shell programming 的方式。而之所以要加強、改善,當然是因為不夠好;Windows 的圖形化操作方式對單一客戶(hù)端計算機的操作,已經(jīng)相當方便,但如果是一群客戶(hù)端計算機,或者是 24 小時(shí)運作的服務(wù)器計算機,圖形化操作方式有時(shí)會(huì )很不方便。
宏語(yǔ)言
宏語(yǔ)言也可視為腳本語(yǔ)言的分支,兩者也實(shí)質(zhì)上的相同之處。宏語(yǔ)言通常附屬于某一種軟件,例如微軟 Office、Visual Studio、Adobe Photoshop 都內建了宏語(yǔ)言的功能,使用者可利用軟件所附的宏語(yǔ)言,達到自動(dòng)化的結果(例如調整某個(gè)數據夾所有 PSD 圖文件的分辨率)。而這類(lèi)宏語(yǔ)言也大多提供錄制宏的功能,自動(dòng)記錄使用者的鍵盤(pán)按鍵,讓使用者不必寫(xiě)程序,就能產(chǎn)生宏程序。此外,C 語(yǔ)言和匯編語(yǔ)言也有宏功能,是以搜尋及取代進(jìn)行編譯或組譯之前的前置處理。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/