二.Shell脚本编程
二、Shell脚本语言的变量用法详解
2.1 变量
变量表示命名的内存空间,将数据放在内存空间中,通过变量名引用,获取数据
2.2 变量类型
变量类型:
内置变量:如PS1,PATH,UID,HOSTNAME,HISTSIZE
用户自定义变量
预定义变量
位置变量
不同的变量存放的数据不同,决定了以下:
数据存储方式
参与的计算
表示的数据范围
变量数据类型:
字符串
数值:整型,浮点型(小数)、bash不支持浮点数
2.3 Shell中变量命名法则
不能使用程序中的保留字,如:if,for
只能使用数字,字母及下划线,且不能以数字开头
见名思意,用英文名字,并体现真正含义
统一命名规则:驼峰命名法
变量名大写
局部变量小写
函数名小写
2.4 变量定义和引用
变量的生效范围(变量作用域)
普通变量:生效范围为当前shell进程;对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效
环境变量:生效范围为当前shell进程及其子进程
本地变量:生效范围为当前shell进程中某代码片段,通常指函数
变量赋值:
注意:变量赋值是临时生效,当退出终端后,变量会自动删除,无法持久保存。
变量引用:
2.5 环境变量
环境变量:
可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量。
一旦子进程修改了从父进程继承的变量,将会传递新的值给孙子进程
一般只在配置文件中使用,在脚本中较少使用
课程引入:普通变量生效的范围与环境变量生效的范围
实例
1.声明整数型变量
2.10.2 set命令实现脚本安全
-u:在扩展一个没有设置的变量时,显示错误信息,等同于set -o nounset
-e:如果一个命令返回一个非0退出的状态值(失败)就退出,等同于set -o errexit
-o:option 显示,打开或关闭选项
显示选项:set -o
打开选项:set -o 选项
关闭选项:set +o 选项
-x:当执行命令时,打印命令及其参数,类似bash -x