shell编程:
编译器,解释器
编程语言:机器语言、汇编语言、高级语言
静态语言:编译型语言
强类型(变量)
事先转换成可执行格式
C、C++、JAVA、C#
动态语言:解释型语言 on the fly
弱类型
边解释边执行
PHP、SHELL、python、perl
面向过程: shell,C
面向对象:JAVA, python、perl,C++
变量:内存空间,命名
内存:编址的存储单元
进程:
1+100
1+1000000
变量类型:事先确实数据的存储格式和长度
字符
数值
整型
浮点型:11.23,1.123*10^1,0.1123*10^2
布尔型
真、假
shell:弱类型编辑语言
强类型:变量在使用前,必须事先声明,甚至还需要初始化;
弱类型:变量用时声明,甚至不区分类型;不声明一般为字符串
变量赋值: VAR_NAME=VALUE
bash变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量
本地变量:
VARNAME=VALUE:作用域为整个bash进程;
局部变量:
local VARNAME=VALUE:作用域为当前代码段;
环境变量:
作用域为整个bash进程及其子进程;
export VARNAME=VALUE
"导出"
位置变量:
$1,$2,,,
特殊变量:
$? : 上一个命令的执行状态返回值
程序执行结果
程序状态返回代码(0-255)
0 :正确执行
1-255:错误执行,1,2,127系统预留
脚本在执行时会启动一个子shell进程;
命令行中启动的脚本会继承当前shell环境变量;系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;
引用变量:${VARNAME}, 括号有时可省略;
‘’弱引用,变量不替换;“”强引用,变量替换为变量值;
加$表示对变量值进行操作;
查看当前shell中的变量:
set
查看当前shell中的环境变量:
printenv
env
export
撤销变量:
unset VARNAME
脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序
shebang:魔数
#!/bin/bash(第一行)
#注释行,不执行
给予执行权限:
chmod +x
eg: chmod +x firt.sh
去除执行权限:
chmod -x
/del/NULL :软件设备,bit bucket,数据黑洞
编程能力:
脚本编程