shell脚本入门-多命令处理与变量

1.多命令处理

多命令处理的介绍:

就是在Shell脚本文件中编写多个Shell命令

我们现在通过一些需求来更好的理解这块的知识

已知目录/root/itheima目录,执行batch.sh脚本,实现在/root/itheima/目录下创建一个one.txt,在one.txt文件中增加内容“Hello Shell”。

步骤分析

  1. 使用mkdir创建/root/itheima目录

  2. 创建脚本文件batch.sh

  3. 编辑脚本文件

    3.1 命令1: touch创建文件, 文件名 /root/itheima/one.txt

    3.2 命令2: 输出数据"Hello Shell"到one.txt文件中

    输出数据到文件中的命令:

    数据 >> 文件

  4. 执行脚本文件

下面我们来一步一步的分解:
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变量的介绍

变量用于存储管理临时的数据, 这些数据都是在运行内存中的.

变量类型

  1. 系统环境变量
  2. 自定义变量
  3. 特殊符号变量

2.1 系统环境变量

目标

1、理解什么是系统环境变量?

2、掌握常用的系统环境变量都有哪些?

介绍

是系统提供的共享变量.是linux系统加载Shell的配置文件中定义的变量共享给所有的Shell程序使用

环境变量分类

在Linux系统中,环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。

系统级环境变量:Shell环境加载全局配置文件中的变量共享给所有用户所有Shell程序使用, 全局共享
用户级环境变量:Shell环境加载个人配置文件中的变量共享给当前用户的Shell程序使用, 登录用户使用

查看当前Shell系统环境变量
查看命令

env

效果在这里插入图片描述

查看Shell变量(系统环境变量+自定义变量+函数)
命令

set

效果:
在这里插入图片描述

2.2自定义变量

目标:

理解自定义变量的分类

能够自定义变量进行增\删\改\查

自定义变量介绍:

这个说白了就是自己定义的变量

分类

  1. 自定义局部变量
  2. 自定义常量
  3. 自定义全局变量
自定义局部变量

介绍

就是定义在一个脚本文件中的变量, 只能在这个脚本文件中使用的变量, 就是局部变量

定义与使用
定义语法:

var_name=value

变量定义规则:

  1. 变量名称可以有字母,数字和下划线组成, 但是不能以数字开头
  2. 等号两侧不能有空格
  3. 在bash环境中, 变量的默认类型都是字符串类型, 无法直接进行数值运算
  4. 变量的值如果有空格, 必须使用双引号括起来
  5. 不能使用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中是否可用

案例实现步骤

  1. 创建2个脚本文件 demo2.sh 和 demo3.sh

  2. 编辑demo2.sh

    命令1:定义全局变量VAR4

    命令2: 执行demo3.sh脚本文件

  3. 编辑demo3.sh

    输出全局变量VAR4

  4. 执行demo2.sh脚本文件

案例演示

  1. 创建demo2.sh和demo3.sh文件在这里插入图片描述
  2. 编辑demo2.sh, 里面定义变量VAR4并设置为全局, 并里面执行demo3.sh脚本文件
    vim demo2.sh
    在这里插入图片描述
    3.编辑demo3.sh, 里面打印VAR4
    在这里插入图片描述
    4.执行脚本文件demo2.sh, 观察打印VAR4效果
    在这里插入图片描述

结论

全局变量在当前Shell环境与子Shell环境中可用, 父Shell环境中不可用

2.3 自定义常量

介绍

就是变量设置值以后不可以修改的变量叫常量, 也叫只读变量

语法

readonly var_name

效果(只能读不能修改):
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值