1、自定义变量:
1.1.自定义变量分类
自定义变量就是:
自己定义的变量
,可将其分为三类:
- 1.自定义局部变量
- 2.自定义常量
- 3.自定义全局变量
2.自定义局部变量
1.自定义局部变量就是:定义在一个脚本文件中的变量,
只能在这个脚本文件中使用的变量, 就是局部变量
2.1.新建:
a.语法:
var_name=value
b.演示:
变量定义规则:
- 1.变量名称可以有字母,数字和下划线组成, 但是
不能以数字开头
- 2.
等号两侧不能有空格
- 3.在bash环境中, 变量的
默认类型都是字符串类型, 无法直接进行数值运算
- 4.
变量的值如果有空格, 必须使用双引号括起来
- 5.
不能
使用Shell的关键字作为变量名称
2.2.查询:
查询查的是自定义局部变量的值
a.语法
# 语法1: 直接使用变量名查询
$var_name
# 语法2: 使用花括号(推荐方式)
${var_name}
区别:
花括号方式适合拼接字符串
b.演示:
注意: 如果
"My name is ${var2}Style"
中$var2
不带花括号, 系统会认为获取$var2Style
变量数据, 这个变量不存在就获取不到数据,执行效果如下
结论:
使用花括号才是编程好习惯
2.3.删除:
删除删掉的是自定义局部变量
a.语法:
unset var_name
b.演示:
2、自定义常量
自定义常量就是
变量设置值以后不可以修改的变量叫常量, 也叫只读变量
2.1.新建:
a.语法:
readonly var_name
b.演示:
3、自定义全局变量
1.自定义全局变量就是:在当前脚本文件中定义全局变量, 这个全局变量
可以在当前Shell环境与子Shell环境中都可以使用
2.父子Shell环境介绍:例如有2个Shell脚本文件 A.sh 和 B.sh;如果
在A.sh脚本文件中执行了B.sh脚本文件, 那么A.sh就是父Shell环境, B.sh就是子Shell环境
3.2.新建:
a.语法:
export var_name1 var_name2
b.演示:
1
.为了测试全局变量在子Shell中是否可用, 在父Shell中是否可用
- 1.创建2个脚本文件 demo2.sh 和 demo3.sh
- 2.编辑demo2.sh:
vim demo2.sh
,里面定义里面定义变量VAR4并设置为全局, 并里面执行demo3.sh脚本文件
- 3.编辑demo3.sh:
vim demo3.sh
, 里面打印VAR4
- 4.执行脚本文件demo2.sh, 观察打印VAR4效果
- 5.执行脚本文件后,
在交互式Shell环境打印VAR4是不能使用的
, 如下观察打印VAR4效果
结论:
全局变量在当前Shell环境与子Shell环境中可用, 父Shell环境中不可用