什么是脚本,脚本语言?
一、脚本
百科解释:
脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。
脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当我们点击网页上的E-mail地址时能自动调用Outlook Express或Foxmail这类邮件软件,就是通过脚本功能来实现的。也正因为脚本的这些特点,往往被一些别有用心的人所利用。例如在脚本中加入一些破坏计算机系统的命令,这样当用户浏览网页时,一旦调用这类脚本,便会使用户的系统受到攻击。所以用户应根据对所访问网页的信任程度选择安全等级,特别是对于那些本身内容就非法的网页,更不要轻易允许使用脚本。通过“安全设置”对话框,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用。
通俗解释:
脚本(Script)的意思最早是从演艺界来的。如果没有脚本,该怎么表演? 表演者只能即兴发挥,或者靠导演的口述来进行。
有了脚本,带来的最大变化是什么?
- 可重复。也就是说,有了脚本,可以把我们既定的一个规程不断重复。
- 脚本需要人来执行。因此脚本的执行效率与具体的执行人有关系。
- 如果在表演过程中,商定了某种大家认可的修改,会考虑对脚本进行修改,用以将我们修改的意图记录下来,将来的再现就可以反映这个修改。
对于 IT 行业,脚本这个词,是个绝妙的翻译。他贴切的表达了这几个含义(web前端开发中scripts文件下有.js文件就是脚本)。
- 脚本的用意是为了可再现的重复一个设定好的规程。
- 脚本需要有一个解释器来执行。
- 脚本能够方便的,快速的,经常的被修改。
所以说,要是打比喻:
你打开资源管理器,用鼠标把一个文件拖到另外一个地方,这是即兴表演。
你写几行命令,把他保存下来, 一执行就做了上面的事情,这就是脚本。
即兴表演,你重复100次,累死了。
脚本,你重复执行100次,全是计算机搞定了
假设你经常从网上下东西,全都放在 D 盘那个叫做 downloads 的文件夹里。而你有分类的癖好,每周都要把下载下来的图片放到 pic 文件夹里,pdf 放到 book 文件夹里,mp3 和 wma 文件放到 music 文件夹里。手动分了一年之后你终于厌倦了,于是你打开记事本,写了以下的三行字:
- copy /Y D:\download\*.jpg D:\pic\
- copy /Y D:\download\*.pdf D:\book\
- copy /Y D:\download\*.mp3 D:\music\
然后把它存成一个.bat 文件。想起来的时候你就双击一下这个文件,然后就发现 download 里的三类文件都被拷到它们该去的地方了。这就是个非常简单的脚本。
二、脚本语言
脚本语言泛指单用作简单編程任务(如shell scripts)。
编程语言:
- 机器语言:0和1,人类几乎没办法阅读、理解
- 汇编语言:由一些特定指令构成,学习成本比较高;在底层做一些驱动,体积小,运行效率高
- 高级语言:c、c++、java、php、python、javascript等
脚本语言是:
- 一种介乎于 HTML 和诸如 JAVA 、 Visual Basic 、 C++ 等编程语言之间的一种特殊的语言。
- 尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。
- 常见的脚本语言有:Python、JavaScript、
动态程序一般有两种实现方式,一是二进制方式,一是脚本方式。
- 二进制方式是先将我们编写的程序进行编译,变成机器可识别的指令代码(如.exe文件),然后再执行。这种编译好的程序我们只能执行、使用,却看不到他的程序内容。
- 脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
我们上面提到的各种动态语言,如Python、ASP、PHP、CGI、JSP等,都是脚本语言。
系统语言与脚本语言之间的区别有很多,但主要的区别是:
- 1、抽象的级别:这是最重要、最明显示的不同。脚本语言对程序员提供了更高级的抽象。这明显表现在:在这种语言自身中,存在有高级的数据结构,如列表和字典结构,和对这种结构简单方便的嵌套和操作。这样可以创建非常成功的程序。
- 2、类型定义:系统语言通常是强类型和静态类型定义。这就意味着所有变量的类型要在程序中指定,在编译时检查。相反地,脚本语言是最松散的类型定义,完全没有类型声明,并且在运行时进行动态类型检查。
- 3、执行:系统语言的特点是编译的。程序被编译成可执行的二进制。另一方面,脚本语言的特点是解释,也就是,指令被立即执行,不存在一个编译的中间状态。这就意味着脚本语言是交互式的(你可以在提示符下敲入命令,并且看到结果),这是另一个巨大的胜利。这样完全将编译过程从编辑-编译-运行循环中去掉了。
- 4、速度:以上三点是脚本语言一方面在速度与效率, 一方面在易用性与表示式的强大性之间进行折衷的典型例子。这就使得脚本语言的执行速度比系统语言慢一个数量级。这就是对脚本语言诽谤最多的方面。性能的降低不是真正的问题,因为思想是用脚本语言来组合组件,这些组件是用象C 这样的快速系统语言来编写的。所以所有需要运行快速的东西将因为是用快速的语言实现的而运行得快速。
脚本语言只用于将东西绑在一起,并且这些通常不是性能的瓶颈( 或如果是,你需要重新检查你的设计)。
三、总结
- 脚本就是给机器一行一行执行的文本
- Bash 脚本有 Bash 脚本的语法,Node.js 脚本有 JS 语法
- 不管是那种脚本,能实现的功能都差不多,只是语法不同
- Bash 脚本的语法挺奇葩的,比如 $1 $# 等符号
- 不用特别去学 Bash 脚本的用法,遇到不会的就 Google
- 不用特别去学 Node.js 脚本的用法,遇到不会的就 Google
- 新人写代码最大的问题就是「抄错了」
- 多写了一个空格
- 少写了一个空格
- 单词拼错了
- 没有加分号
- 多加了分号
什么是脚本,脚本语言?相关推荐
- 2023-ISCC信息安全与对抗竞赛wp-misc(详解,有脚本( •̀ ω •́ ),脚本解析,有附件)
芜湖~~~ 芜湖~~~ 没想到不知不觉今年这一届就算结束了 真可谓真是八仙过海各显神通呀 本文章我们只讨论题,别的不讨论 题目还是很不错,我只是题目的搬运工 进入正题 以下是本人的一些解题思路 ...
- python刷新网页脚本_python语言如何测试实现页面下拉刷新
2017-05-10 回答 对于各种驱动接口,python来编写测试用例的好处是:由于python不需要编译,你所执行的也就是你所编写的,当发生异常的时候,你无须打开集成开发环境,加载测试工程.并调试 ...
- c语言自动按键脚本,C语言键盘控制走迷宫小游戏
本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 ...
- 什么是脚本 解释性语言?
1 什么是脚本? 脚本,原指是指表演戏剧.拍摄电影等所依据的底本又或者书稿的底本.脚本可以说是故事的发展大纲,用以确定故事的发展方向. 脚本:1.写脚本的人,也叫故事构成.2.与剧本不同,脚本并没有明 ...
- mysql workbench导入sql_MySQL Workbench 导入sql脚本-Go语言中文社区
最近一直在搞数据,数据量大了真的很头疼.特别是数据迁移,用的是insert的sql脚本. 导入数据方法一: 主页面上有这个按钮,意思是打开sql脚本.按钮如下: 点击按钮选择脚本: 选择脚本以后,打开 ...
- 按键脚本c语言,按键精灵脚本(示例代码)
1电脑版读取文件脚本Dim path path = "C:/Users/Administrator/Desktop/accounts" //直接读取文件到变量,文件的每一行在变量中 ...
- C语言程序中调用脚本,C语言调用SHELL脚本
在Linux 环境下Shell脚本具有非常强大的功能!使用Shell可以很方便的使用和管理Linux系统,最近学习了一点shell知识,所以一直在 想要是可以在C/C++中调用shell脚本那该有多 ...
- CoppeliaSim(原Vrep)中实现多关节机械臂的正运动学仿真【CoppeliaSim内嵌脚本lua语言实现】
lua实现 文章目录 lua实现 `本章在动力学建模完成的前提下进行` 1)创建脚本 2)代码实现 3)以上代码的运行结果 4)代码中用到函数的help文档 本章在动力学建模完成的前提下进行 传送门: ...
- c语言调用linux脚本,C语言执行shellcode的五种方法
//C语言执行shellcode的五种方法 #include #include //data段可读写 #pragma comment(linker, "/section:.data,RWE& ...
- 易语言c语言哪个做游戏脚本,易语言游戏脚本写法源码
.版本 2 .支持库 spec .程序集 _启动窗口 .程序集变量 流程, 类_流程控制 .子程序 __启动窗口_创建完毕 .子程序 等待打开记事本, 文本型 .判断开始 (进程_名取ID (&quo ...
最新文章
- Kubectl 常用命令, 开发人员常用k8s命令
- Python3成员运算符(List元素是否存在)
- POJ 3258 River Hopscotch(二分查找答案)
- myjdbc链接数据库.增删改查
- javascript 数组求交集/差集/并集/过滤重复
- 系统学Android从零开始,详细的Android学习指南
- @postconstruct注解方法没有执行_把对象的创建交给spring来管理(注解IOC)
- Linux图片马PHP,php 根据请求生成缩略图片保存到Linux图片服务器的代码
- [Selenium] 操作新弹出窗口之验证标题和内容
- Win32 SDK - 打开文件对话框
- CentOS7 服务器连接超时自动断开问题解决
- 【element】elementUI-中折叠面板箭头图标位置调整往左边
- NodeJS Warning: Accessing non-existent property ‘padLevels‘ 解决办法
- 实现多个文件夹名同时重命名的操作
- java基础知识点整理大全
- Shell 编程 ~ 从入门到入坑。
- 【零基础】极星9.3资金字段详解
- oracle人语句大全,oracle查询语句大全
- 数据库课程设计-图书馆管理系统(1.数据库分析部分)
- VMware14 黑屏