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 -->脚本开头
# -->注释行,不执行