编程语言一般可分为静态语言以及动态语言。

静态语言:编译型语言 强类型(变量) 事先编译 

例如:c c++ java c#

动态语言:解释型语言 弱类型 (默认不区分变量类型,并且默认类型为字符串型)

例如:PHP shell python perl


面向对象:java python

面向过程:shell


变量:内存空间,命名的内存空间 #能回收

内存:编址的内存空间


变量的类型可分为:字符、数值、真假  声明变量类型的作用是事先确定存储格式和长度

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

#非门在现实中使用电磁感应,来开关闭合电路


bash中的变量可分为:环境变量本地变量(局部变量)、位置变量、特殊变量

变量名:字母,数字,下划线且不能数字开头

    不能与环境变量重名

    最好做到见名知意

本地变量; VARNAME=VALUE 作用于整个bash进程

引用变量 $(VARNAME)变量有时可省略

局部变量 local VARNAME=VALUE 作用于当前代码段

环境变量 作用于当前shell进程及其子进程

export VARNAME=VALUE “导出”

由于脚本在执行时会启动子shell进程

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

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

位置变量 $1,$2

特殊变量 $? 保存上一个命令执行状态返回值

    程序状态返回代码 0:正确执行

     1-255:错误  1.2.127系统预留

    $# 表示参数个数

    $* 表示参数列表

    $@ 表示参数列表

    shift 轮递 shift [n] 一次替换n个

输出重定向:>,>>,2>,2>>,&>

例如: id username &> /dev/null #/dev/null为数据黑洞 bit bucket

撤销变量 unset VARNAME  #创建变量为

查看变量 set

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


环境变量添加:字符串型变量可以使用,例如export PATH=$PATH:(添加路径名)