• 其他变量定义、简单四则运算、数组


    其他变量定义

    • 取一个变量中路径或文件

    (1)dirname——取变量值中路径
    在这里插入图片描述

    (2)basename——取变量值中文件名
    在这里插入图片描述

    • 变量内容的删除与替换(不更改变量值,只是改变了输出)

    (1)%——从右到左删除指定格式字符串
    在这里插入图片描述
    注:*为通配符,可理解为有且什么都行
    (2)%%——从右到左最大删除指定格式字符串
    在这里插入图片描述
    (3)#——从左到右删除指定格式字符串
    在这里插入图片描述

    (4)##——从左到右最大删除指定格式的字符串
    在这里插入图片描述

    (5)/——替换第一个找到的
    在这里插入图片描述

    (6)//——替换所有符合的
    在这里插入图片描述

    • 变量状态检测替换

    此处,我将变量分为三种状态:一、已经赋值且不为空,二、未赋值,三、已经赋值且为空

    (1)-与:-

    #[]在此处表示二选一且必选
    echo "${变量名[:-|-]替换值}"
    
    • 1
    • 2

    a. :-表示如果前面变量未赋值或为空则输出符号后值(不改变符号前变量值),否则输出前变量值
    在这里插入图片描述

    b. -符号表示如果前面变量未赋值则输出符号后值,否则输出前变量值
    在这里插入图片描述

    (2)+与:+

    #[]在此处表示二选一且必选
    echo "${变量名[+|:+]替换值}"
    
    • 1
    • 2

    a. :+表示如果前面变量赋值则输出符号后值,否则输出变量值
    在这里插入图片描述

    b. +符号表示如果前面变量已赋值或为空则输出符号后值,否则输出变量值
    在这里插入图片描述

    (3)=与:=

    #[]在此处表示二选一且必选
    echo "${变量名[=|:=]替换值}"
    
    • 1
    • 2

    a. :=会改变符号前变量值但其他几种不会,机制为变量未赋值或为空时输出:=后的数据并将该数据赋值给前变量
    在这里插入图片描述
    b. =符号忽略空值处理
    在这里插入图片描述

    (4)?与:?

    #[]在此处表示二选一且必选
    echo "${变量名[?|:?]替换值}"
    
    • 1
    • 2

    a. ?表示前变量未赋值则输出后替换值
    在这里插入图片描述

    b. :? 表示前变量未赋值或为空值则输出后替换值
    在这里插入图片描述

    简单四则运算

    在这里插入图片描述

    示例如下:
    在这里插入图片描述
    注:

    • expr 后接加减乘除运算注意之间有空格

    在这里插入图片描述

    • *需要通过转义来实现其乘意义

    数组

    (1)普通数组——下标默认从0开始递增1

    #数组定义(批量赋)
    a=(value1 value2 value3 ... valuen)
    #数组定义(单个)
    a[下标]=value
    
    • 1
    • 2
    • 3
    • 4

    示例如下:
    在这里插入图片描述

    (2)关联数组——下标可以设置为字符串

    #关联数组声明
    declare -A 关联数组名
    
    • 1
    • 2

    示例如下:
    在这里插入图片描述

    (3)数组查看

    • ${array[*]}——查看数组中所有元素

    在这里插入图片描述

    • ${#array[*]}——数组中所有元素个数

    在这里插入图片描述

    • ${!array[@]}——数组索引即数组下标

    在这里插入图片描述

    • ${array[@]:1:2}——第一位表示数组索引,第二位表示从第几位开始,第三位表示输出从第二位数字开始后几个(包括自己)

    在这里插入图片描述

    查看普通数组信息:declare -a
    在这里插入图片描述

    查看关联数组信息:declare -A
    在这里插入图片描述

  • 相关阅读:
    java计算机毕业设计校园失物招领管理系统源代码+系统+数据库+lw文档
    如何快速掌握Vuex
    this 内存原理
    android 8(O)预装APP到data/app目录
    工程师新红利,我国预计到2025年培养20万名这类人才
    【递归】Pow(x , n)(Java版)
    美化你的Xfce桌面
    mybatis动态表名
    Red Hat 8 启动没有进入GUI图形界面
    ruoyi-vue前端数据字典值引用与回显(列表中回显,多选框回显)
  • 原文地址:https://blog.csdn.net/weixin_51371629/article/details/126471685