1.多命令处理
多命令处理的介绍:
就是在Shell脚本文件中编写多个Shell命令
我们现在通过一些需求来更好的理解这块的知识
已知目录/root/itheima目录,执行batch.sh脚本,实现在/root/itheima/目录下创建一个one.txt,在one.txt文件中增加内容“Hello Shell”。
步骤分析
使用mkdir创建/root/itheima目录
创建脚本文件batch.sh
编辑脚本文件
3.1 命令1: touch创建文件, 文件名
/root/itheima/one.txt
3.2 命令2: 输出数据"Hello Shell"到one.txt文件中
输出数据到文件中的命令:
数据 >> 文件
执行脚本文件
下面我们来一步一步的分解:
1、进入root目录,执行创建/root/itheima目录命令
mkdir /root/itheima
2、创建/root/batch.sh文件
touch batch.sh
3、编辑batch.sh文件,编写shell命令
命令1:创建/root/itheima/one.txt文件
命令2:输出“I love Shell”字符串数据到one.txt文件中
#!/bin/bash
cd itheima # 切换到itheima目录
touch one.txt # 创建文件one.txt
echo "Hello Shell">>/root/itheima/one.txt #输出数据到one.txt文件中
运行脚本效果
运行batch.sh脚本文件
sh batch.sh
查看one.txt文件内容
cat itheima/one.txt
2.Shell变量
Shell变量的介绍
变量用于存储管理临时的数据, 这些数据都是在运行内存中的.
变量类型
- 系统环境变量
- 自定义变量
- 特殊符号变量
2.1 系统环境变量
目标
1、理解什么是系统环境变量?
2、掌握常用的系统环境变量都有哪些?
介绍
是系统提供的共享变量.是linux系统加载Shell的配置文件中定义的变量共享给所有的Shell程序使用
环境变量分类
在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。
系统级环境变量:Shell环境加载全局配置文件中的变量共享给所有用户所有Shell程序使用, 全局共享
用户级环境变量:Shell环境加载个人配置文件中的变量共享给当前用户的Shell程序使用, 登录用户使用
查看当前Shell系统环境变量
查看命令
env
效果
查看Shell变量(系统环境变量+自定义变量+函数)
命令
set
效果:
2.2自定义变量
目标:
理解自定义变量的分类
能够自定义变量进行增\删\改\查
自定义变量介绍:
这个说白了就是自己定义的变量
分类
- 自定义局部变量
- 自定义常量
- 自定义全局变量
自定义局部变量
介绍
就是定义在一个脚本文件中的变量, 只能在这个脚本文件中使用的变量, 就是局部变量
定义与使用
定义语法:
var_name=value
变量定义规则:
- 变量名称可以有字母,数字和下划线组成, 但是不能以数字开头
- 等号两侧不能有空格
- 在bash环境中, 变量的默认类型都是字符串类型, 无法直接进行数值运算
- 变量的值如果有空格, 必须使用双引号括起来
- 不能使用Shell的关键字作为变量名称
演示一下:
查询变量值语法
# 语法1: 直接使用变量名查询
$var_name
# 语法2: 使用花括号
${var_name}
# 区别: 花括号方式适合拼接字符串
花括号解释如下(如果没有花括号的话会认为是获取testgirl这个变量的值):
变量删除
语法
unset var_name
效果:
自定义全局变量
父子Shell环境介绍
例如: 有2个Shell脚本文件 A.sh 和 B.sh
如果 在A.sh脚本文件中执行了B.sh脚本文件, 那么A.sh就是父Shell环境, B.sh就是子Shell环境
自定义全局变量介绍
就是在当前脚本文件中定义全局变量, 这个全局变量可以在当前Shell环境与子Shell环境中都可以使用
自定义全局变量语法
export var_name1 var_name2
我们现在来具体实现一个需求:
测试全局变量在子Shell中是否可用, 在父Shell中是否可用
案例实现步骤
创建2个脚本文件 demo2.sh 和 demo3.sh
编辑demo2.sh
命令1:定义全局变量VAR4
命令2: 执行demo3.sh脚本文件
编辑demo3.sh
输出全局变量VAR4
执行demo2.sh脚本文件
案例演示
- 创建demo2.sh和demo3.sh文件
- 编辑demo2.sh, 里面定义变量VAR4并设置为全局, 并里面执行demo3.sh脚本文件
vim demo2.sh
3.编辑demo3.sh, 里面打印VAR4
4.执行脚本文件demo2.sh, 观察打印VAR4效果
结论
全局变量在当前Shell环境与子Shell环境中可用, 父Shell环境中不可用
2.3 自定义常量
介绍
就是变量设置值以后不可以修改的变量叫常量, 也叫只读变量
语法
readonly var_name
效果(只能读不能修改):