shell编程:
编程语言:
编译器:解释器
编程语言:机器语言、汇编语言、高级语言
静态语言:编译型语言
强类型(变量)
事先转换成可执行格式
c、c++、JAVA、c#
关键字:
动态语言:解释型语言
弱类型语言
边解释边执行
ASP、ASP.NET、PHP、python、perl
变量:内存空间,命名
内存:编址的存储单元
进程:
变量类型:(决定变量存储格式和存储长度)
字符
数值
整数
浮点型:11.23
shell: 弱类型语言
变量赋值:VAR_NAME=VALUE
bash变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量
本地变量:
VARNAME=VALUE:作用域整个bash进程
局部变量:
local VARNAME=VALUE:作用域为当前代码段:
环境变量:作用域为当前SHELL进程及其子进程
export VARNAME=VALUE
"导出"
脚本在执行时会启动一个子shell进程:
命令行中启动脚本会继承当前SHELL环境:
系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量
bash:
引用变量:${VARNAME} 花括号大部分时间可以省略
位置变量:
$1,$2....
特殊变量:
$?:保存上一个命令执行状态返回值
程序执行后,可能有两因返回值
程序执行结果
程序状态 返回代码(0-255)
0:程序 正确返回
1-255:程序错误执行 1,2,127,系统预留:有特殊意义
/dev/null 软件设备,bit bucket数据黑洞,吃人不吐骨头
撤消变量:
unset VARNAME
查看当前SHELL中变量
set
查看当前shell中的环境变量
printenv
env
export
脚本:命令的堆砌,按实际的需要,结合命令流程控制机制实现的源程序
shebang:魔数
#!/bin/bash