• 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
    
    • 1

    2、创建/root/batch.sh文件

    touch batch.sh
    
    • 1

    在这里插入图片描述
    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文件中
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    运行脚本效果
    运行batch.sh脚本文件

    sh batch.sh
    
    • 1

    查看one.txt文件内容

    cat itheima/one.txt
    
    • 1

    在这里插入图片描述

    2.Shell变量

    Shell变量的介绍

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

    变量类型

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

    2.1 系统环境变量

    目标

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

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

    介绍

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

    环境变量分类

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

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

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

    env
    
    • 1

    效果在这里插入图片描述

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

    set
    
    • 1

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

    2.2自定义变量

    目标:

    理解自定义变量的分类

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

    自定义变量介绍:

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

    分类

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

    介绍

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

    定义与使用
    定义语法:

    var_name=value
    
    • 1

    变量定义规则:

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

    演示一下:
    在这里插入图片描述

    查询变量值语法
    # 语法1: 直接使用变量名查询
    $var_name
    # 语法2: 使用花括号
    ${var_name}
    # 区别: 花括号方式适合拼接字符串
    
    • 1
    • 2
    • 3
    • 4
    • 5

    花括号解释如下(如果没有花括号的话会认为是获取testgirl这个变量的值):
    在这里插入图片描述

    变量删除

    语法

    unset var_name
    
    • 1

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

    自定义全局变量
    父子Shell环境介绍

    例如: 有2个Shell脚本文件 A.sh 和 B.sh

    如果 在A.sh脚本文件中执行了B.sh脚本文件, 那么A.sh就是父Shell环境, B.sh就是子Shell环境

    自定义全局变量介绍

    就是在当前脚本文件中定义全局变量, 这个全局变量可以在当前Shell环境与子Shell环境中都可以使用

    自定义全局变量语法

    export var_name1 var_name2
    
    • 1

    我们现在来具体实现一个需求:

    测试全局变量在子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

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

  • 相关阅读:
    只因说了一句:“反正我有技术,在哪不一样”一位年薪35W自动化测试工程师被某讯开除
    如何生成一个足够安全又容易记住的密码?
    2023上海初中生古诗文大会复赛12月2日举行,关键事项为您划重点
    MySQL实践——MySQL权限
    fmx 边框设计
    【性能|优化】TB级flink任务报错分析:Could not compute the container Resource
    仿东郊到家app系统及功能介绍
    性能测试,如何做压力测试?压力测试的12点误区,避免背锅提升效率(一)
    深入理解C#中委托的使用及不同类型委托的应用示例
    Java进阶(七)Set系列集合、Map集合体系
  • 原文地址:https://blog.csdn.net/m0_56642224/article/details/131145572