• Shell脚本-字符串


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

    字符串可以由单引号' '包围,也可以由双引号" "包围,也可以不用引号。

    字符串举例

    str1=jack
    str2="rose"
    str3='100'
    
    • 1
    • 2
    • 3

    三种形式的区别

    1. 由单引号' '包围的字符串:
    • 任何字符都会原样输出,在其中使用变量是无效的。
    • 字符串中不能出现单引号,即使对单引号进行转义也不行。
    1. 由双引号" "包围的字符串:
    • 如果其中包含了某个变量,那么该变量会被解析(得到该变量的值),而不是原样输出。
    • 字符串中可以出现双引号,只要它被转义了就行。
    1. 不被引号包围的字符串
    • 不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" "包围的字符串一样。
    • 字符串中不能出现空格,否则空格后边的字符串会作为其他变量或者命令解析。

    脚本

    #!/bin/bash
    
    name=jack
    str1=我的名字是$name
    str2="有个人的\"名字\"叫$name"
    str3='我朋友叫 $name'
    echo $str1
    echo $str2
    echo $str3
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    输出:

    我的名字是jack
    有个人的"名字"叫jack
    我朋友叫 $name
    
    • 1
    • 2
    • 3

    str1 中包含了$name,它被解析为变量 name 的引用。

    str2 中包含了引号,但是被转义了(由反斜杠\开头的表示转义字符)。str2 中也包含了$name,它也被解析为变量 name 的引用。

    str3 中也包含了$name,但是仅仅是作为普通字符,并没有解析为变量 name 的引用。

    获取字符串长度

    具体方法如下,${#string_name},string_name 表示字符串名字。
    代码如下:

    #!/bin/bash
    
    name=jack
    echo ${#name}
    
    • 1
    • 2
    • 3
    • 4

    输出:

    4
    
    • 1
  • 相关阅读:
    NLP机器翻译全景:从基本原理到技术实战全解析
    【java学习—九】工厂方法FactoryMethod(6)
    分布式的在线教育系统的实现与应用
    Java.lang.Class类 isAssignableFrom()方法有什么功能呢?
    PyTorch入门之【dataset】
    Java设计模式之备忘录模式
    CTF之变量1
    【Rust】Rust环境配置与语法基础
    SQL每日一练(牛客新题库)——第1天: 基础查询
    MFC 注册表
  • 原文地址:https://blog.csdn.net/qq_37279783/article/details/125523066