bash 是一个为GNU计划编写的Unix shell。

程序开发语言有两种:

       1.解释型语言:perl,python,ruby,bash等,由解释器负责读取一行执行一行,

       2.编译型评议:c,c++,c# 等,由编译器把整个程序转换为二进制格式,而后执行

变量: 内存空间,可用于存储数据

bash变量:

      环境变量 : 作用域为当前的shell进程和子进程。

      设置一个新的环境变量规则为:export VARNAME=VALUE,环境变量有全局环境变量和本地环境变量,全局环境变量是指对所有登陆用户都起作用的环境变量,文件在 /etc/profile ,/etc/profile.d/*.sh , /etc/bashrc ,如在编译安装mysql后,可以在/etc/profile文件中最后加入export PATH=/usr/local/mysql/bin:$PATH或用命令  echo "export PATH=/usr/local/mysql/bin:$PATH" >>/etc/profile 注:/usr/local/mysql/bin是指mysql的安装路径然后执行source /etc/profile 使变量生效,即可以使用mysqladmin命令来设置mysql密码。查看当前环境变量:env 或export                          

     本地变量(局部变量): 只对当前shell进程有效:对其子shell及其它shell都无效;例

[root@localhost ~]# a=6
[root@localhost ~]# echo $a
6                                  ##变量引用:${VAR_NAME}  用$符加变量名。

      位置变量:$1,$2,…….,$1表示第一个参数,$2第二个参数,类推,$0: 执行脚本时的脚本路径及名称 basename $0  取得脚本的名称,$#  位置参数的个数,seq 0  $#   表示从0到最后一个参数的列表,可以用于循环。

      特殊变量:

            $? :上一个命令的返回值:程序执行结果,如果返回0 代理正确执行,1-255 :错误执行,数值1,2,127 为系统预留的返回值。

            $#    位置参数的个数  
            "$*"    所有的位置参数(作为单个字符串) *  
            "$@"    所有的位置参数(每个都作为独立的字符串)  
            ${#*}    传递到脚本中的命令行参数的个数  
            ${#@}    传递到脚本中的命令行参数的个数  
            $?    返回值  
            $$    脚本的进程ID(PID)  
            $-    传递到脚本中的标志(使用set)  
            $_    之前命令的最后一个参数  
            $!    运行在后台的最后一个作业的进程ID(PID)  

* 必须被引用起来, 否则默认为"$@".  

bash 的配置文件

   全局配置   /etc/profile ,  /etc/profile.d/*.sh ,  /etc/bashrc

   个人配置   用户目录下  ~/.bash_profile,  ~/.bashrc

      profile类的文件:    1.设定环境变量,如设置mysql的环境变量     2. 运行命令或脚本

      bashrc类的文件:    1.设定本地变量      2 定义命令别名  如 alias cls=clear  即可用cls起到clear的作用

     用户登陆时,读取配置文件的顺序是    /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc       用su命令更换用户名是,读取的配置文件为  ~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh

shell  变量类型:事先确定数据的存储格式和长度(数据表示范围)

                 字符型:ASCII码,128个基本字符,用一个字节表示,即8位

                  数值型:

                            整型   即整数,二进制表示,4位一个数字,两个数字即8位

                            浮点型   近似值,带有小数的,单精度,双精度,

                  布尔型: 日期型,对象,一般编程不会用到

      shell中一般默认定义变量为字符型,如果要用做数值计算,就要用到bc 命令,在命令行输入bc命令就可以进行数值计算。运算符有+、-、*、/、%(取余)、^(指数,即幂),bc默认是整型,如果要进行小数点以后的运算,即浮点运算,需要输入命令scal=number,number即保留几位小数。

     示例:

[root@localhost ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1+8+5
14
5^4
625
10%8
2
scale=2
3/7
.42
quit

如果要在shell中直接运用算术运行,可以有以下几种方法

A=3  
B=6  
1、let 算术运算表达式  
   let C=$A+$B  
2、$[算术运算表达式]  
   C=$[$A+$B]  
3、$((算术运算表达式))  
   C=$(($A+$B))  
4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用  
   C=`expr $A + $B`

bash变量也可声明,甚至可以指定类型:declare  
       declare -i VAR_NAME: 声明一个整型变量  
       declare -x VAR_NAME: 声明一个环境变量  
       declare -a VAR_NAME: 声明一个数组

如果bash中变量没有指定类型,默认为字符号变量,查看所有变量,set 可以显示出来。