变量是内存空间,通过变量名引用变量的时候,称为命名的内存空间。
定义一个变量,就是给变量分配一段编址的内存空间,给变量赋值,就是往内存空间里面填充数据。
变量类型:事先定义好数据的存储格式和长度。不同的数据类型所占用的存储空间和存储格式也不一样。
变量类型如:
字符类型。 数值类型。分为整型、浮点型 日期和时间型。 布尔型。
逻辑运算:与(and)、或(or)、非
and:&& 只要有一个为假,结果就为假。只有两者都为真,结果才为真。 or:|| 只要有一个为真,结果就为真。只有两者都为假,结果才为假。 非:!
变量赋值方法:VAR_NAME=VAULE
BASH变量类型
注意: 1.脚本在执行时,会在当前shell下启动一个子shell进程。 2.命令行中启动的脚本会继承当前shell的环境变量。 3.系统自动启动的脚本(非命令行启动)就需要自我定义各种所需要的环境变量。
环境变量:声明环境变量的格式export VARNAME=VALUE作用域:当前shell进程及其子进程。
本地变量:声明本地变量的格式VARNAME=VALUE。作用域:对整个脚本进程或整个bash进程有效。
局部变量:声明局部链路的格式local VARNAME=VALUE。作用域:只对当前的代码段有效。
位置变量:$n,第n个位置变量,引用脚本中参数的位置的。如果n大于10,则要写成${n}
特殊变量:bash内置的变量。如$?,保存的是上一个命令的执行状态返回值(范围是0-255),如果是0,则表示正确执行,如果是非0,则表示执行失败。1,2,127为系统预留。其他值则可以用户自已定义。
引用变量:${var_name},如果不至于引起变量名混淆的,{}可以省略。
示例:
[root@Server3 ~]# ANIMAL=tiger [root@Server3 ~]# echo "There is a $ANIMAL" There is a tiger [root@Server3 ~]# echo "There is a ${ANIMAL}" There is a tiger [root@Server3 ~]# echo "There are some $ANIMALs" There are some [root@Server3 ~]# echo "There are some ${ANIMAL}s" There are some tigers [root@Server3 ~]#
环境变量:
示例
[root@Server3 ~]# NAME=frame [root@Server3 ~]# export NAME [root@Server3 ~]# echo $NAME frame [root@Server3 ~]# bash [root@Server3 ~]# echo $NAME frame [root@Server3 ~]#
取消变量:unset 变量名
示例:
[root@Server3 ~]# echo $NAME frame [root@Server3 ~]# unset NAME [root@Server3 ~]# echo $NAME [root@Server3 ~]#
查看shell中的变量:(包括环境变量和本地变量) set 查看当前shell中的环境变量: printenv env export
增加变量的内容:
示例1:
[root@Server3 ~]# ANIMALS=pig [root@Server3 ~]# echo $ANIMALS pig [root@Server3 ~]# ANIMALS=$ANIMALS:tiger [root@Server3 ~]# echo $ANIMALS pig:tiger [root@Server3 ~]# ANIMALS=$ANIMALS:sheep [root@Server3 ~]# echo $ANIMALS pig:tiger:sheep [root@Server3 ~]#
示例2:
[root@Server3 ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@Server3 ~]# PATH=$PATH:/tmp [root@Server3 ~]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp [root@Server3 ~]# PATH=/home:$PATH [root@Server3 ~]# echo $PATH /home:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp [root@Server3 ~]# 说明:PATH为变量名称,$PATH为引用PATH变量的内容。
变量定义规则:
1.不能和系统中的环境变量重名。
2.变量名只能包含字母、数字、下划线,且不能以数字开始。
3.最好做到见名知意。
本文出自 “HeZhang” 博客,请务必保留此出处http://hezhang.blog.51cto.com/1347601/1435278
shell编程(一)---变量,布布扣,bubuko.com
原文地址:http://hezhang.blog.51cto.com/1347601/1435278