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


    其他变量定义

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

    (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
    在这里插入图片描述

  • 相关阅读:
    MySQL 常用功能
    为什么虚拟dom会提高性能?
    UML精简概述
    java ssm框架的点歌系统的设计与实现源码
    APP如何实现「年轻化」的需求?
    Python 实现Tracert追踪TTL值
    Q-Tester 3.4新版发布,增加了多种授权方式
    【办公类-16-07-04】合并版“2023下学期 中班户外游戏(有场地和无场地版,一周一次)”(python 排班表系列)
    cmd/bat 输出符,控制台日志输出到文件
    python每日一题(模拟用户登录验证)
  • 原文地址:https://blog.csdn.net/weixin_51371629/article/details/126471685