bash脚本编程之一变量、变量类型

                                                         

shell编程:

 

编译器,解释器

编程语言:机器语言、汇编语言、高级语言

 

静态语言:编译型语言

  

强类型(变量)语言

   事先转换成可执行格式

   CC++JAVAC#

  

动态语言:解释型语言       on the fiy                                  

   弱类型

   边解释边执行

  ASPASP.netPHPshellPythonperl

  

面向过程:shellC  

面向对象:JAVAPython PerlC++

 

 

变量:内存空间,命名

 

内存:编制的存储单元

 

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

    字符

    数值

    整型:

    浮点型:                

    布尔型:真、假

 逻辑运算:与、或、非(!)、异或

 

shell:弱类型编程语言

 

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

       空(NULL         

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

 

变量赋值:       

                  

bash变量类型:

    环境类型:

    本地变量:(局部变量) 

    位置变量:

    特殊变量(系统变量):

 

本地变量:

VARNAME=VALUE:作用域为整个bash进程;    

 

局部变量:

localVARNAME=VALUW:作用域为当前代码段;

        

环境变量:作用域为当前shell进程及其子进程

setexport VARNAME=VALUE    

     “导出”

          

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

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

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

         

         bash

        

位置变量:

$1,$2,... 

        

特殊变量:

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

 

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

     程序执行结果

     程序执行状态返回代码(255      

     0:正确执行

   1-255):错误执行,12127系统预留;

 

输出重定向:

 >:覆盖输出

>>:追加输出

2>:重定向错误输出

2>>:追加方式

&>:同时重定向(重定向错误输出)

 

/dev/null:软设备,bit bucket,数据黑洞

 

 撤销变量:

unset  VARNAME}

 

查看当前shell中的变量:

set

 

查看当前shell中的环境变量:

printenv

env

export

 

脚本:命令的堆砌,按实际需要,结合

 

shebang:魔数

#/bin/bash

# 注释行,不执行

 

 

 

        

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