• shell 字符串变量


    1 介绍

    字符串(String)就是一系列字符的组合。字符串是 Shell 编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了)

    2 字符串的三种格式

    1 单引号方式
    2 双引号方式, 推荐
    3 不用引号方式

    vim string.sh
    
    #!/bin/bash
    name1='james'
    name2="kobe"
    name3=paul
    
    echo "name1: ${name1}"
    echo "name2: ${name2}"
    echo "name3: ${name3}"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    3 字符串的三种格式区别

    1 使用单引号’'的字符串
    任何字符都会原样输出,在拼接字符串中使用变量是无效的。

    2 由双引号" "包围的字符串
    其中包含了变量,那么该变量会被解析得到值,而不是原样输出。

    3 不被引号包围的字符串

    不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" "包围的字符串一样。
    字符串中不能出现空格,否则空格后边的字符串会作为其他命令解析。

    demo:

    vim string.sh
    
    #!/bin/bash
    name="kobe"
    
    
    echo '使用单引号打印 name: ${name}'
    echo "使用双引号打印 name: ${name}"
    echo  不适用引号打印name:${name}
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    4 获取字符串长度

    4.1 语法

    ${#字符串变量名}
    
    • 1

    4.2 含义

    获取字符串长度

    #!/bin/bash
    name="kobe"
    
    
    echo '使用单引号打印 name: ${name}'
    echo "使用双引号打印 name: ${name}"
    echo  不适用引号打印name:${name}
    
    
    echo "字符串长度为: ${#name}"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4.3 结果

    在这里插入图片描述

    5 字符串拼接

    5.1 拼接方式

    1 无符号拼接
    2 双引号拼接

    5.2 demo

    #!/bin/bash
    hello="hello"
    world="world"
    hello_world=${hello}${world}
    echo "无符号拼接: ${hello_world}"
    
    hello_world1="${hello}${world}"
    echo "双引号拼接:${hello_world}"
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

    6 字符串截取

    6.1 语法

    格式说明
    ${变量名:start:length}从 string 字符串的左边第 start 个字符开始,
    向右截取 length 个字符。start从0开始
    ${变量名:start}从 string 字符串的左边第 start 个字符开始截取,直到最后。
    ${变量名:0-start:length}从 string 字符串的右边第 start 个字符开始,
    向右截取 length 个字符。start从1开始, 代表右侧第一个字符
    ${变量名:0-start}从 string 字符串的右边第 start 个字符开始截取,直到最后。
    ${变量名#*chars}从 string 字符串左边第一次出现 *chars 的位置开始,
    截取 *chars 右边的所有字符。
    ${变量名##*chars}从 string 字符串左边最后一次出现 *chars 的位置开始,
    截取 *chars 右边的所有字符。
    ${变量名%chars*}从 string 字符串右边第一次出现 chars* 的位置开始,
    截取 chars* 左边的所有字符。
    ${变量名%%chars*}从 string 字符串右边最后一次出现 chars* 的位置开始,
    截取 chars* 左边的所有字符

    6.2 demo

    字符串"hello world"
    
    从左侧第0个开始,向左截取2个字符
    从左侧第5个开始,向左截取所有字符
    从右侧第5个开始,向右截取2个字符
    截取左边第一次出现字符l右边的所有字符
    截取左边最后一次出现字符l右边的所有字符
    截取右边第一次次出现字符l左边的所有字符
    截取右边最后一次出现字符l左边的所有字符
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    #!/bin/bash
    string="hello world"
    
    echo "字符串为: ${string}"
    
    
    str1="${string:0:2}"
    echo "从左侧第0个开始,向左截取2个字符: ${str1}"
    
    str2="${string:5}"
    echo "从左侧第5个开始,向左截取所有字符: ${str2}"
    
    str3="${string:0-5:2}"
    echo "从右侧第5个开始,向右截取2个字符: ${str3}"
    
    str4="${string#*l}"
    echo "截取左边第一次出现字符l右边的所有字符: ${str4}"
    
    str5="${string##*l}"
    echo "截取左边最后一次出现字符l右边的所有字符: ${str5}"
    
    str6="${string%l*}"
    echo "截取右边第一次次出现字符l左边的所有字符: ${str6}"
    
    str7="${string%%l*}"
    echo "截取右边最后一次出现字符l左边的所有字符: ${str7}"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    在这里插入图片描述

  • 相关阅读:
    acwing算法基础之基础算法--快速选择算法
    Java核心知识点整理大全5-笔记
    VTK - Boolean布尔操作
    IntelliJ IDEA Services工具栏运行不显示端口问题解决
    淘宝/天猫API,获得淘宝商品评论(返回值说明)
    python实现爬虫例子2
    10.SpringBoot实战演练
    Flask笔记二之blueprint和session介绍
    数据结构·顺序表
    Tomcat 线程模型&性能调优
  • 原文地址:https://blog.csdn.net/qq_34125999/article/details/125439015