• 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

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

  • 相关阅读:
    【Python】推荐三个好玩的图像处理库
    wx.getPrivacySetting 小程序隐私保护指引的使用(复制粘贴即用)
    猿创征文|助力前端开发的实用型工具
    【提示学习论文】BlackVIP: Black-Box Visual Prompting for Robust Transfer Learning论文原理
    scala解析命令行参数详解
    QT c++ 将浮点数数组转换成 QByteArray
    Java开发:实现用户注册登录的功能
    GO-实现简单文本格式 文本字体颜色、大小、突出
    辅助知识-第2 章 项目合同管理
    MES管理系统解决方案实现生产信息全程追溯
  • 原文地址:https://blog.csdn.net/m0_56642224/article/details/131145572