一、变量的基本介绍
什么是变量
解析:变量是计算机内存的单元,其中存放的值是可以改变的。当shell脚本需要存放东西的时候,可以吧一个数字、一个字母的时候,它就存在变量中。
每一个变量都有一个名字,用来引用它。使用变量可以保存信息,也可以方便的获取信息。
变量名称的规则
1.变量名称可以由字母、数字、下划线组成。但是不能以字母开通,而且一般不以下划线开头。
2.变量在bash中,默认类型都是字符串类型。如果需要进行数值运算,则需要指定变量类型为数值型。
3.变量两侧通过=(等号)连接,中间不能加空格。
4.如果变量的值有空格,需要用单引号或者双引号来包含。比如:name=“ ss”。
5.在变量值中,可以用(转译符)来转译。
6.如果需要叠加变量的值,那么就需要进行变量值的叠加。变量也需要用双引号来包含“$变量名”或者用${变量名}包含。
7.也可以吧命令的结果作为变量的值,但是需要$()来包含命令。
8.环境变量一般大写,便于区分。
变量的分类
用户自定义变量
环境变量:这种变量保存的主要是和系统环境相关的变量。
位置参数变量:这种变量主要是用来像脚本中传递参数和数据的。变量名不能自定义,变量的作用是固定的。
预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
二、bash的变量。
1.用户的自定义变量
解析:用户自己定义的变量,用来保存参数。方便实用。而且用户自定义变量只在当前shell中生效。
自定义变量的操作
定义变量:$变量名=变量内容
查看变量:set 查看系统所有的变量,通过|grep查看需要看的变量。set |$变量名
删除变量:unset 变量名。注意这里可以不加$
2.环境变量
解析:用户自定义变量只在当前shell中生效,但是环境变量可以在当前shell及其子shell中生效。如果把环境变量写入配置文件
那么这个变量就会在所有的shell中生效。
环境变量的操作
设置环境变量:export 变量名=变量值
查看环境变量:env
删除环境变量:unset 变量名
备注:如何查看shell。
pstree
3.位置参数变量。
①$n n的意思是数字,$0代表本身
②$* 代表所有参数,把所有参数看成一个整体。
③$@ 代表所有参数,不过把每个参数区别对待。
④$# 代表命令中所参有数。
4.预定义变量
①$? 最后一次执行的命令的返回状态,如果这个变量值为0,证明这个命令执行正确上一个命令正确执行,如果这个 变量值为非0 (具体哪个数,由变量自己决定),证明上一个命令执行不正确。
②$$ 当前进程的进程号(PID)
③$! 后台运行的最后一个进程的进程号(PID)。
5.接受键盘参数。
命令:read 格式:read 【选项】 变量名
参数:①-p “提示信息” : 在等待read输入时,输出提示信息。
②-t 秒数 :read命令会一直等待用户输入,使用此选项可以指定等待时间。
③-n 字符数 :read只要接受到指定的字符数就执行。
④-s隐藏输入数据 :类似于输入密码的时候。
6.数值运算与运算符
学前知识。
声明变量类型 declare 语法:declare 【+/-】【选项】变量名
选项:-:给变量设定类型属性
+:取消变量的类型属性
-i:将变量声明为整数类型(intrger)
-x:将变量声明为环境变量
-p:显示指定变量的被声明的类型。
数值运算:
方法①:通过declare -i 来声明变量为整数型。
方法②:用expr或者let数值运算工具
注意:+号的左右两边必须有个空格。
方法③:"$((运算式))"或"$[运算式]"
注意:这里是双小括号,如果是单小括号代表包含的是系统命令。
运算符:
① + 加法
② - 减法
③ * 乘法
④ / 除法
⑤ % 取余
⑥ = 赋值
⑦ == 相等 用于比较两个数字,相等则返回ture
⑧ != 不等 用户比较两个数字,不等则返回ture
变量置换: