1.什么是变量
从本质上讲,变量就是在程序中保存用户数据的一块内存空间,变量名就是这块内存空间的地址。在程序执行过程当中,保存数据的内存空间内容可能会不断发生变化,但是代表内存地址的变量名却保持不变,由于变量的值时在计算机的内存中,所以当计算机重启后,变量的值会丢失。
2.变量的命名
命名规范:
变量名由字母,数字,下划线组成,并且只能以字母或者下划线开头,用户应该选择有明确意义的英文单词作为变量名,尽量避免使用拼音或者毫无意义的字符串作为变量名
2.1 可读性好的变量名
HISTCONTROL=ignoredups:ignorespace
HISTSIZE=1000
2.2 可读性差的变量名
abc=123
str1="hello,world"
2.3 变量名的大小写敏感
java=1.8
JAVA=1.9
两个变量的结果是不一样的
3. 变量的类型
shell是一种动态类型语言和弱类型语言,即在shell中,变量的类型无需显示的声明,变量的数据类型会根据不同的操作有所变化,准确的讲,shell中的变量是不分数据类型的,统一地按照字符串存储
3.1 案例
#!/bin/bash
#定义变量x,并且赋值为123
x=123
#变量x加1
let "x += 1"
#输出变量x的值
echo "x = $x"
#把变量x中的1替换为abc
y=${x/1/abc}
#输出变量y的值
echo "y = $y"
#声明变量y
declare -i y
#输出变量y的值
echo "y = $y"
#变量y的值加1
let "y += 1"
#输出变量y的值
echo "y = $y"
#将字符串赋值给变量z
z=abc22
#输出变量z的值
echo "z = $z"
#把变量x中的1替换为abc
m=${z/abc/11}
#输出变量m的值
echo "m = $m"
#变量m的值加1
4.变量的定义
通常情况下,用户可以直接使用变量,无需先进行定义,在用户第一次使用使用某个变量名时,实际上就同时定义了这个变量。
4.1 案例
#!/bin/bash
#定义变量a
a=1
#定义变量b
b="hello"
#定义变量c,如果变量的值包括空格,一定要用引号引起来
c="hello world"
4.2 declare 声明变量
格式: declare 属性 变量名
属性分类:
-p 显示所有变量的值
-i 将变量定义为整数
-r 将变量声明为只读变量
-a 将变量声明为数组
-f 显示所有自定义函数
-x 将变量设置为环境变量
案例
#!/bin/bash
#定义变量x,并将一个算术式赋值给x
x=6/3
echo "$x"
#定义变量x为整数
declare -i x
echo "$x"
#将算术式赋值给变量x
x=6/3
echo "$x"
#将字符串赋值给变量x
x=hello
echo "$x"
#将浮点数赋值给变量x
x=3.14
echo "$x"
#取消变量x的整数属性