1.shell编程:
编译器:解释器
编程语言:机器语言、汇编语言、高级语言
静态语言:编译型语言
强类型(变量)
事先转换成可执行格式
c、c++、java、c#
动态语言:解释型语言,on the fly
弱类型
边解释边执行
php shell python perl
面向对过程 :shell ,c
面向对象:java , python,perl,c++
变量:内存空间,命名
内存:编址点存储单元
变量类型:事先确定数据的存储格式和长度
字符
数值
浮点
整形
2013/10/10 不算/ 64bit 位
99999: 24bit 2的24次 3个字节
整形 8 bit :256
0-255, 溢出
shell:弱类型编程语言
强:变量在使用前,必须事先声明,甚至还需要初始化
弱:变量用时声明,甚至不区分类型
变量只在同个shell中有效
animal=pig
echo “there are some ${animal}s”
bash变量类型
环境变量
本地变量(局部变量)
位置变量
特殊变量
本地变量:
VARNAME=VALUE :作用域为整个bash进程
局部变量:
local VARNAME=VALUE :作用域为当前代码段
环境变量:作用域为当前shell 进程及其子进程:(子shell有效)
export VARNAME=VALUE //导入环境变量
echo $VARFNAME
“导出“
位置变量:
$1,$2 ,…
特殊变量:
$? :上一个命令的执行状态返回值
程序执行,可能有两类返回值
程序执行结果
程序状态返回代码(0-255)
0:正确执行
1-255 错误执行
ls /vary //错误
脚本在执行时会启动一个子shell 进程
命令行中启动的脚本会继承当前shell环境变量
系统自动执行的脚本(非命令行启动)就需要自我定义需要各环节变量
pstree //Linux命令之pstree - 以树状图显示进程间的关系
撤销变量
unset VARNAME
查看当前shell中的变量
set
查看当前shell中的环节变量
printenv
env
export
A=2
B=3
C=$A+$B
echo $C
// 2+3
脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源代程序
shebang:魔数
#!/bin/bash
//两种运行方式
./first.sh
bash first.sh