shell 编程:
编译器: 也叫解释器
shell 给我们提供另外一个功能:
编程语言: 将人类的语言转变成机器可以理解的语言
机器语言 (01 代码), 汇编语言 (依然很低层, 成长周期比较长, 学习起来也比较困难)
高级语言 (尽管如此, 它也不是人类的语言, 但是最接近人类的语言)
静态语言:
编译型语言 (有程序开发环境, 不需要借助额外的二进制程序, 直接写代码, 写完之后需要一个编译器, 将代码放到编译器就可以交给硬件形成一个独立运行的程序, 我们就把他叫做静态语言)
事先转换成可执行的格式
所需要的重要的一个特征: 强类型 (变量)
关键字:
执行之前就要完全转换, 事先转换成可以执行的格式程序
像 C,C++,JAVA,C#(不需要任何解释器, 自我就能运行)
动态语言: 解释型语言 on the fly
(一个代码我们程序员写完以后, 他不需要转换成二进制格式, 而是有一个解释器, 解释一条, 执行一条, 也就是在执行以后在进行转换)
(通常) 弱类型: 边解释边执行
像 PHP,SHELL,Python(非常流行的, 面向对象的, 很多游戏脚本都是用 python),perl(早前流行的: 读音: po(破))
bash: 最易学, 最容易上手的就是 SHELL
如果能学好 python 就是如虎添翼, 添加了很多翼
perl 面向过程的, 虽然 perl6 加上了对象, 但是现在由于各种原因也流行不起来
事实上很多脚本是 python 研发的, 在学习学了多年的计算机, 都没有学过 python, 所以学校学的是脱节的
面向过程: 相对开发小型的应用程序: shell,c
把编程着眼点主要在于问题解决的过程本身
面向对象: 相对开发大型的应用程序: JAVA(纯面向对象语言),Python(纯面向对象语言),perl,c++
含义: 把整个我们要实现的项目抽象一个个对象, 并定义对象之间的动作, 就是可发出的操作来完成的, 所以这个更适合开发大型程序
不过任何工具都是双刃剑 (菜刀可以杀人也可以切菜)
要想理解编程, 必须要理解变量
变量 (不断变化的量): 是内存空间, 命名的内容空间 (就是不断变化的量, 存储在某一个内存的存储空间, 根据地址就可以找到这个)
内存是存址的存储单元
我们通过变量和内存地址相对应, 所以我们看到的是变量, 比如 a, 其实它对应的是一个内存的地址空间
什么是脚本?
如何去写脚本: 其实就是命令的堆砌, 是按照实际需要, 结合命令流程控制机制实现的源程序的脚本
Linux 只能识别 ELF 格式去执行的 (也就是脚本的第一行必须是 #!/bin/bash,bash 是解释器,/bin/bash 是解释器路径), 这样才能然一个 ASCII 格式的文本可以被执行
我们的文件几乎都是是 ACISS 格式的
所以我们想运行脚本文件, 必须是在文件的第一行用
- #!/bin/bash
- (而后再出现的 #就是注释的 #(也就是当做有效的组成部分))
所以一执行这个文件, 就会读到第一行, 就会用 bash 的编辑器去运行
并且要知道 shell 脚本的文件要用. sh 后缀, 就像是本地仓库要用. repo 一样
来源: http://www.bubuko.com/infodetail-2544109.html