shell之基础概念与变量类型
静态语言:编译型语言 事先转换成可执行格式
强类型(变量)
关键字:
C C++ JAVA C#
动态语言:解释型语言 on the fly
弱类型
边解释边执行
Asp.net shell PHP Python perl
面向过程
面向对象
变量:内存空间,命名
变量类型:事先确定数据的存储格式和长度
字符
数值
整型
浮点型:11,23
整型:8bit 256
0-255 溢出-->缓冲区溢出
逻辑:
布尔类型:0,1
逻辑运算:与,或,非,异或
1:真
0:假
1&0=0
0&0=0
1&1=1
非:取反
!真=假
!假=真
shell :弱类型
强:变量使用前必须先声明,甚至还要初始化
弱:变量用时声明,甚至不区分类型
bash变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量
本地变量:
set VARNAME=VALUE:作用域整个bash进程
局部变量:
local VARNAME=VALUE :作用域为当前代码段
环境变量:作用域为当前shell进程及其子进程
export VARNAME=VALUE
"导出"
脚本在执行时会启动一个子shell进程
命令行中启动的脚本会继承当前shell环境变量:
系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量:
位置变量:
$1,$2,.....
特殊变量:
$?:上一个命令执行状态返回值:
程序执行后,可能有两类返回值
程序执行结果
程序状态返回代码(0-255)
0:正确执行
1-255:错误执行。1,2,127系统预留
输出重定向:
>
>>
2>
2>>
&>
/dev/null:软件设备 bit bucket 数据黑洞
bash
引用变量:${VARNAME} {}有时可省略
撤销变量:
unset VARNAME
查看当前shell中变量:
set
查看当前shell中的环境变量:
printenv
env
export
特殊变量,位置变量没法查看
脚本:命令的堆砌,按实际需要结合命令流程控制机制实现的源程序
shebang:魔数
#!/bin/bash
#注释行,不执行
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。