1、shell和c语言的区别:javascript
shell是个脚本语言,也是应用程序与内核进行交互的桥梁(一个让开发者与内核交互的软件)。
好比咱们计算机的运行状态等咱们是没法肉眼来查看的,可是经过shell咱们就能看到他的数据,其余一些应用程序,好比浏览器、音乐播放器等得到内核所掌管的音频、显卡等驱动的帮助。
shell也是个脚本语言,咱们能够将一系列的操做放入一个文件中,并给予这个文件可执行的权限,咱们就能够一下运行文件中的全部的指令,好比咱们有一系列的操做常用,可是一个一个的打是在太麻烦了,咱们能够将他写到一个脚本中,只需一次运行全部的操做就完成了。
而C语言是另外一种高级的计算机语言,他能够开发不少软件,其实shell也是用c写的。
2、什么是脚本语言
脚本语言(Script languages,scripting programming languages,scripting languages)是为了缩短传统的编写-编译-连接-运行(edit-compile-link-run)过程而建立的计算机编程语言。此命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言常常被称为批处理语言或工做控制语言。一个脚本一般是解释运行而非编译。虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到能够编写精巧的程序,但仍然仍是被称为脚本。几乎全部计算机系统的各个层次都有一种脚本语言。包括操做系统层,如计算机游戏,网络应用程序,文字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,两者之间没有明确的界限。一个脚本可使得原本要用键盘进行的相互式操做自动化。一个Shell脚本主要由本来须要在命令行输入的命令组成,或在一个文本编辑器中,用户可使用脚原本把一些经常使用的操做组合成一组序列。主要用来书写这种脚本的语言叫作脚本语言。不少脚本语言实际上已经超过简单的用户命令序列的指令,还能够编写更复杂的程序。
简介
脚本语言是为了缩短传统的
编写-
编译-
连接-
运行(edit-compile-link-run)过程而建立的计算机
编程语言。
[1]
它的命名起源于一个脚本“screenplay”,每次运行都会使
对话框逐字重复。早期的脚本语言常常被称为批量处理语言或工做控制语言。
[2]
一个脚本一般是解释运行而非编译。脚本语言一般都有简单、易学、易用的特性,目的就是但愿能让
程序员快速完成
程序的编写工做。而宏语言则可视为脚本语言的
分支,二者也有实质上的相同之处。
[3]
特色
一、脚本语言(JavaScript,
VBscript等)介于
HTML和C,C++,Java,C#等编程语言之间。 HTML一般用于格式化和连接文本。而编程语言一般用于向机器发出一系列复杂的指令。
二、脚本语言与
编程语言也有不少类似地方,其
函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.
三、与程序代码的关系:脚本也是一种语言,其一样由程序代码组成。
注:脚本语言通常都有相应的
脚本引擎来解释执行。 他们通常须要
解释器才能运行。
Python、JAVASCRIPT,ASP,PHP,PERL,
Nuva都是脚本语言。C/C++编译、连接后,可造成独立执行的exe文件。
四、脚本语言是一种解释性的语言,例如
Python、vbscript,javascript,installshield script,ActionScript等等,它不象c\c++等能够编译成二进制代码,以
可执行文件的形式存在,脚本语言不须要编译,能够直接用,由解释器来负责解释。
五、脚本语言通常都是以
文本形式存在,相似于一种
命令。
举个例子说:若是创建了一个程序,叫aaa.exe,能够打开.aa为扩展名的文件,为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,本身的程序用这种规则来理解编写人的意图,并做出回应,那么,这一套规则就是脚本语言。
[5]
六、相对于编译型计算机编程语言:用脚本语言开发的程序在执行时,由其所对应的解释器(或称虚拟机)解释执行。系统程序设计语言是被预先编译成机器语言而执行的。脚本语言的主要特征是:程序代码便是脚本程序,亦是最终
可执行文件。脚本语言可分为
独立型和
嵌入型,独立型脚本语言在其执行时彻底依赖于解释器,而嵌入型脚本语言一般在编程语言中(如
C,
C++,
VB,
Java等)被
嵌入使用。
[1]
[6]
七、和系统程序设计语言相比:不一样是脚本语言是被解释而系统程序设计语言是被编译。被解释的语言因为没有编译时间而提供快速的转换,经过容许用户运行时编写应用程序,而不须要耗时的编译/打包过程。解释器使应用程序更加灵活,脚本语言的代码可以被实时生成和执行。脚本语言一般都有简单、易学、易用的特性,目的就是但愿能让程序设计师快速完成程序的编写工做。
[1]
优势
容易部署:大多数脚本语言都可以随时部署,而不须要耗时的编译/打包过程。
同已有技术的集成:脚本语言被Java或者
COM这样的组件技术所包围,所以可以有效地利用代码。
易学易用:不少脚本语言的技术要求一般要低一些,所以可以更容易地找到大量合适的技术人员。
动态代码:脚本语言的代码可以被实时生成和执行,这是一项高级特性,在某些应用程序里(例如JavaScript里的动态类型)是颇有用也是必需的。
[7]
缺点
脚本语言不够全面:它们会要求一门“真正的”编程语言的存在,必须找一个数据库驱动程序将其内置进脚本语言里。
脚本语言并非软件工程和构建代码结构的最佳选择,例如面向对象和基于
组件的开发。
编辑本段脚本语言的应用和发展
1、应运
(2):做为通用的编程语言存在,如
Perl、
Python、
Ruby等。因为“解释执行,
内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看做脚本语言;
(3):许多大型的应用
程序都包括根据
用户需求而定制的惯用脚本语言。一样地,许多电脑
游戏系统使用一种自定义脚本语言来表现
NPC(Non-Player Character,Non-Playable Character,Non-Player Class)和游戏环境的预编程动做。此类语言一般是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如Quake C,Modeled After C),但它们有自定义的功能;
(4):网页中的嵌入式脚本语言。熟知的
HTML(Hyper Text Mark-up Language)即
超文本标记语言,就是一种脚本语言,它的解释器就是
浏览器。
JavaScript直到如今仍然是网页
浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入式脚本语言。另外,随着
动态网页技术发展,
ASP、
JSP、PHP等嵌入网页的脚本语言正被普遍使用,不过这些脚本要经过Web Server解释,而Html则被浏览器执行;
(5):脚本语言在系统应用程序中嵌入使用,做为用户与系统的接口方式。在工业控制领域,PLC编程、组态软件的脚本语言是扩充组态
系统功能的重要手段;在通讯平台领域,
IVR(自动语音应答)流程编程;Office办公软件,提供的宏和VBA;其余应用软件如ER Studio提供的Basic MacroEditor,用户能够编写Sax Basic脚本操做ER图,生成Access库、导出Word文档等扩展功能。
[8]
2、发展状况
脚本技术得益于计算机
硬件的加速发展。某些状况下甚至系统程序设计语言也不够有效,所以不得不用汇编编写应用程序。而今的机器比1980年的快100~500倍,且仍在以每18个月翻一番的速度增加。计算机性能快速提升,使计算机程序愈来愈复杂。所以,开发时间已远比运行时间紧迫。这时,脚本语言做为系统程序设计语言的补充,开始被主要的
计算机平台所同时提供。
编程语言已经由性能低下的硬件与执行效率之间的矛盾,转变为快速变化的市场须要与低效的开发工具之间的矛盾,因此脚本语言的发展在软件开发中有着必然的趋势。
[1]
这类的常见的有JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua。
脚本语言的特色是语法简单,通常以文本形式保存,而且不须要编译成目标程序,在调用的时候直接解释。这能够当作是脚本语言的判断标准,好比说JavaScript,你只须要用记事本新建一个Html文件,在里面加上一段脚本就能够了,在浏览器打开Html文件时天然会调用JS脚本。
[9]
1、工做控制语言和shell
Shell 脚本
此类脚本用于自动化工做控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行界面,如
Unix shell和MS-DOS command。其余如AppleScript,能够为系统增长脚本环境,但没有命令行界面。
具体分类有:
1.4NT
3.ARexx(Amiga Rexx)
14.Winbatch
16.Windows Script Host
2、GUI 脚本
GUI出现带来一种专业的控制计算机的脚本语言。它在用户和图形界面,
菜单,按钮等之间互动。它常常用来自动化重复性动做,或设置一个标准状态。理论上它能够用来控制运行于基于GUI的计算机上的全部
应用程序,但实际上这些语言是否被支持还要看应用程序和操做系统自己。当经过键盘进行互动时,这些语言也被称为宏语言。
具体分类有:
3、应用程序定制的脚本语言
许多大型的应用程序都包括根据用户需求而定制的惯用脚本语言。一样地,许多电脑游戏系统使用一种自定义脚本语言来表现NPC(non-player character,non-playable character,non-player class)和游戏环境的预编程动做。
此类语言一般是为一个单独的应用程序所设计,虽然它们貌似一些通用语言(如QuakeC, modeled after C),但它们有自定义的功能。
具体分类:
1.Action Code Script
4.BlobbieScript
5.Emacs Lisp
6.Game Maker Language
8.IPTSCRAE
9.IRC script
11.Matlab Embedded Language
12.Maya Embedded Language
13.mIRC script
14.NWscript
15.QuakeC
16.UnrealScript
17.Visual Basic for Applications
19.ZZT-oop
4、WEB编程脚本
应用程序定制的脚本语言中有一种重要的类别,用于提供WEB页面的自定义功能。它专业处理互联网通讯,使用
网页浏览器做为用户界面。固然,大多现代WEB编程语言都比较强大能够作一些通用编程。
具体分类:
2.Lasso
5.IPTSCRAE-
一些网络开发团队用于建立论坛的工具
5、文本处理语言
处理基于文本的记录是脚本语言最先的用处之一。如Unix's awk最先是设计来帮助系统管理员处理调用
UNIX基于文本的配置和LOG文件。Perl最先是用来产生报告的,如今它已经成了全面成熟的语言。
具体分类:
6、通用动态语言
一些语言,好比Perl,从一门脚本语言发展成了更通用的编程语言。因为“解释执行,内存管理,动态”等特性,它们仍被称为脚本语言。但它们已经用于应用程序编写,用户也不把它们看做脚本语言。
15.SuperCard
16.
Tcl(Tool command language)
7、扩展/可嵌入语言
少数的语言被设计经过嵌入应用程序来取代应用程序定制的脚本语言。开发者(如使用C等其它系统语言)包入使脚本语言能够控制应用程序的hook。这些语言和应用程序定制的脚本语言是同种用途,但优势在于能够在应用程序之间传递一些技能。
具体分类:
4.GameMonkeyScript
8.RBScript(REALbasic Script)
11.Z-Script
JavaScript直到如今仍然是网页浏览器内的主要编程语言,它的ECMAScript标准化保证了它成为流行的通用嵌入性语言。
Tcl做为一种扩展性语言而建立,但更多地被用做通用性语言,就如同Python, Perl, Ruby同样。
8、其它
2.CobolScript
3.Escapade (server side scripting)
5.F-Script
6.Ferite
8.Gui4Cli
10.KiXtart
12.Object REXX
14.Pliant
16.ScriptBasic
17.Shorthand Language
18.Simkin
20.StepTalk
21.Visual DialogScript