编程语言:

    机器语言

    汇编语言

    高级语言:

            静态语言:编译型语言

                    强类型(变量)

                    事先转换成可执行格式

                    如:C、C++、JAVA、C#

            动态语言:解释型语言,on the fly

                    弱类型

                    边解释边执行

                    如:ASP、.NET、PHP、SHELL、python、perl

面向过程:shell,C

面向对象:JAVA,Python,perl,c++


静态优点:性能好

      缺点:每一次改动都需要重新编译,开发周期长,维护成本大

动态优点:便于维护,众多共享模块,开发周期短

      缺点:性能相对静态差


变量:内存空间

内存:编址的存储单元


变量类型:事先确定数据的存储格式和长度

      字符

      数值

            整型

            浮点型:

            

逻辑运算:与、或、非、异或

1:真

0:假

与:只有2者同为真(1)才真,否则为假(0)

或:其中一个为真(1)即为真,否则为假(0)

非:!真=假,!假=真


shell:弱类型编程语言

强类型:变量在使用前必须事先声明,甚至还需要初始化:NULL(空)

弱类型:变量用时声明,甚至不区分类型


bash变量类型

环境变量

    export VARNAME=VALUE    作用域为当前shell进程及其子进程

    脚本在执行时会启动一个子shell进程:

        命令行中启动的脚本会继承当前shell环境变量

        系统自动执行的脚本(非命令行启动)就需要自我定义需要个环境变量

本地变量(局部变量)

    本地变量:VARNAME=VALUE    作用域为整个bash进程

    局部变量:local VARNAME=VALUE    作用域为当前代码段

位置变量

特殊变量

    $?:上一个命令的执行状态返回值

    程序执行可能有两类返回值:

       程序执行结果

       程序状态返回代码(0-255)

           0:正确执行

           1-255:错误执行。1、2、127系统预留

引用变量:${VARNAME}    括号有时候可省略


撤销变量:unset VARNAME

查看当前shell中的变量:set

查看当前shell中的环境变量:env、export、printenv