shell编程:


编译器,解释器


编程语言:机器语言、汇编语言、高级语言


静态语言:编译型语言

强类型(变量)

事先转换成可执行格式

C、C++、JAVA、C#


动态语言:解释型语言,on the fly

弱类型

边解释边执行

PHP、SHELL、Python、perl


面向过程:shell,c

面向对象:JAVA,python,perl,c++


变量:内从空间,命名


内存:编址的存储单元


进程:程序运行起来就是进程


变量类型:事先确定数据的存储格式和长度

字符

数值:整型,浮点型

              整型:8bit,村256-->溢出

布尔型:真,假



与:只要一个为假-->假  短路逻辑运算

或:只要一个为真-->真 

非:

异或:


强类型:变量在使用前,必须事先声明,甚至初始化

NULL:为空

弱类型:变量用时声明,甚至不区分类型;

如果不声明,默认为字符类型


变量赋值:变量名=值


bash变量类型:

环境变量:

本地变量:(局部变量)

位置变量:

特殊变量:


本地变量:

VARNAME=VALUE:作用域为整个bash进程;

局部变量:

local VARNAME=VALUE:作用域为当前代码段;

环境变量:

export VARNAME=VALUE;

“导出”

脚本在执行时会启动一个子shell进程;

命令行中启动的脚本会继承当前shell的环境变量

系统自动执行的脚本(非命令行启动)就需要自我定义需要的各环境变量;


引用变量:${VARNAME} 括号可省

位置变量:$1,$2...

特殊变量:

$?:上一个命令的执行状态返回值;

        程序执行,可能有两类返回值:

程序执行结果

       程序状态返回代码(0-255)

0:正确执行

1-255:错误执行,1,2,127系统预留;


输出重定向:> >> 2> 2>> &>

撤销变量:

unset VARNAME


查看当前shell中变量:set 包括环境变量和本地变量

查看当前shell中的环境变量:

printenv,env,export


为PATH变量添加/usr/local/mysql

export PATH=$PATH :/usr/local/mysql 

脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序


shebang:魔数

#!/bin/bash -->脚本开头

#           -->注释行,不执行