1. 字符串变量的三种方式

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

  1. 单引号方式
  2. 双引号方式, 推荐
  3. 不用引号方式
var = 'abc'
var2 = "abc"
var3 = abc

1.1 三种格式的区别

  1. 使用单引号 '' 的字符串:

    任何字符都会原样输出,在其中使用变量是无效的。

  2. 由双引号" "包围的字符串:

    其中包含了变量,那么该变量会被解析得到值,而不是原样输出

    字符串中还可以出现双引号的子字符串,但是需要转义。

  3. 不被引号包围的字符串

    不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" "包围的字符串一样。

    字符串中不能出现空格,否则空格后边的字符串会作为其他变量或者命令解析。

2. 获取字符串的长度

${#字符串变量名}

3.字符串拼接方式

  1. 无符号拼接

  2. 双引号拼接

  3. 混合拼接

4. 字符串截取方法

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

04-Shell字符串变量的更多相关文章

  1. shell字符串变量的特异功能:字符串的替换(${str/源模式/目标模式},${str//源模式/目标模式})、截断

    https://blog.csdn.net/wzb56_earl/article/details/6953612

  2. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

  3. shell变量替换 SHELL字符串处理技巧(${}、##、%%)

      在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子 ...

  4. shell之变量与read

    环境变量 set 环境变量可供shell以外的程序使用 shell变量 env shell变量仅供shell内部使用 set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell ...

  5. 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法

    linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法   linux bash shell之变量替换::=句法.=句法.:-句法.-句法. ...

  6. 【转载】SHELL字符串处理技巧(${}、##、%%)

    转载自:http://www.cnblogs.com/pmars/archive/2013/02/17/2914444.html 在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子 ...

  7. shell与变量的声明的操作

    1.给命令起别名:alias 执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息: 还可以用一个别名表示几个命令 的结合: 2.ps:显示当前登录会话的所有活动进程: 3.更 ...

  8. Linux 的shell 字符串截取很有用。有八种方法。

    一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1  # 号截取,删除左边字符,保留右边字符. echo ${va ...

  9. linux shell 字符串操作(长度,查找,替换)详解

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  10. Shell 字符串比较

    转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...

随机推荐

  1. 【C#/.NET】使用Automapper映射record类型

    ​ 当使用Automapper进行对象映射时,通常我们会使用POCO(Plain Old CLR Object)类作为源对象和目标对象.然而,自从C# 9引入了record类型,它们提供了更简洁.不可 ...

  2. 微调用于多语言 ASR 的 MMS 适配器模型

    新内容 (06/2023): 这篇博文受到 "在多语言 ASR 上微调 XLS-R" 的强烈启发,可以看作是它的改进版本. Wav2Vec2 是自动语音识别 (ASR) 的预训练模 ...

  3. 基于JavaFX的扫雷游戏实现(二)——游戏界面

      废话环节:看过上期文章的小伙伴现在可能还是一头雾水,怎么就完成了核心内容,界面呢?哎我说别急让我先急,博主这不夜以继日地肝出了界面部分嘛.还是老规矩,不会把所有地方都照顾到,只挑一些有代表性的内容 ...

  4. HTB靶场之OnlyForYou

    准备: 攻击机:虚拟机kali. 靶机:OnlyForYou,htb网站:https://www.hackthebox.com/,靶机地址:https://app.hackthebox.com/mac ...

  5. PB从入坑到放弃(五)窗口使用技巧

    PB应用程序就是由许多共同协作完成特定任务的窗口组成的集合. 窗口在应用程序的开发工作中占有很大的比重,是非常重要的一个 PB 对象 一.窗口类型 窗口类型 描述 Main ①可以覆盖其他窗口,也可以 ...

  6. PDF转换OFD(Java实用版)

    前言: 在项目中用到了,就写一下哈 OFD简介 百度百科:https://baike.baidu.com/item/OFD/56227163?fr=aladdin OFD(Open Fixed-lay ...

  7. Oracle备份与还原(实用版)

    Oracle备份与还原 EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用. I ...

  8. 2021-7-6 new tcpip

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Ne ...

  9. 分布式ID性能评测:CosId VS 美团 Leaf

    分布式ID性能评测:CosId VS 美团 Leaf 基准测试环境 MacBook Pro (M1) JDK 17 JMH 1.36 运行在本机的Docker 的 mariadb:10.6.4 运行基 ...

  10. Django链接数据库出现的错误以及解决方法

    问题一:django.db.utils.OperationalError: (1045, "Access denied for user 'leo'@'localhost' (using p ...