shell编程: 编译器,解释器
编程语言:机器语言、汇编语言、高级语言
静态语言:变异型语言
强类型(变量)
事先转换成可以执行格式
c、c++、JAVA、c#
动态语言:解释型语言,(on the fly)
弱类型
边解释边执行
PHP、SHELL、Python、Perl
面向过程:shell、c
面向对象:JAVA、Python、Perl、c++
变量:内存空间,命名
内存:编址的存储单元
变量类型:事先确定数据的存储格式和长度
字符型
数值型
整型
浮点型
整型,8bit:保存256
0-255 溢出
逻辑:1+1>2
逻辑运算:与、或、非、异或
1:真
0:假
与:
1&0=0
0&1=0
0&0=0
1&1=1
非:
!真=假
!假=真
shell:弱类型编程语言
强:变量在使用前,必须事先声明,甚至还需要初始化
弱:变量用时声明,甚至不区分类型
bash变量类型:环境变量 本地变量(局部变量) 位置变量 特殊变量
本地变量:
VARNAME=VALUE 作用域为整个 bash进程:
引用变量:${变量名},括号有的时候可以省略
[root@localhost ~]# name=jack
[root@localhost ~]# echo $name
jack
[root@localhost ~]# animal=dog
[root@localhost ~]# echo "there are some ${animal}s"
there are some dogs
局部变量:
local VARNAME=VALUE:作用域为当前代码段:
环境变量:
作用域为当前shell进程及其子进程。
expore VANAME=VALUE
"导出"
位置变量:
$1,$2,......
特殊变量:
$?:上一个命令执行状态返回值;
程序执行。肯能有了两类返回值;
1.程序执行结果
2.程序状态返回代码(0-255)
0:正确执行
1-255:错误执行 , 1,2 ,127 系统预留
> :覆盖重定向
>>:追加重定向
&>同时重定向
撤销变量:
unset vaname
查看当前shell中变量;
set
查看当前shell中的环境变量:
princev
env
export
脚本:命令的堆砌,按实际需要,结合命令流程机制实现的源程序
shebang:魔数
#!/bin/bash
#:而後的#都是注�行
给
脚本在执行时会启动一个子shell环境变量;
/dev/null:软件设备,bit bucket,数据黑洞
脚本在执行时会启动一个子shell进程;
命令行中启动的脚本会继承当前shell环境变量;
系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量
原文链接:https://www.f2er.com/bash/390809.html