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. 2. IOC

    ‍ 对于 IOC 的理解 : 在 Spring 框架中,IOC(Inversion of Control,控制反转)是一个重要的概念,它是框架实现松耦合的一种方式.在传统的程序设计中,应用程序会主动创 ...

  2. NetBeans连接SQLServer2008配置

    一.配置SQL Server (一)SQL Server配置管理器 1.打开SQL Server配置管理器 (1)文件路径,我的是C:\Windows\SysWOW64\mmc.exe, 也可以从开始 ...

  3. 从零开始整SpringBoot-工具与插件

    工具 工具 名称 地址 IDEA https://www.jetbrains.com/idea/ JDK1.8 https://www.oracle.com/java/technologies/jav ...

  4. Linux下Redis集群部署

    一.Redis集群介绍 Redis 集群是一个提供在多个Redis节点间共享数据的程序集.Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性 ...

  5. Python读取本地文件时出现错误UnicodeDecodeError

    Python读取本地文件时出现错误UnicodeDecodeError: 'gbk' codec can't decode byte 0x94 in position 5702: illegal mu ...

  6. Unity 4.6 bate 20 or 4.5.5 +vuforia3.0.9 发布到真机错误 解决

    错误图 +错误码 014-11-20 15:45:49.224 youzheng[6527:1035587] ################### enable 32014-11-20 15:45: ...

  7. Centos7中搭建Redis6集群操作步骤

    目录 下载安装包 解压安装装包 安装依赖 安装 创建目录 设置配置文件 创建启动服务 制作启动文件 启动并验证Redis 开放防火墙端口 创建集群 集群其他操作 注意 下载安装包 # 进入软件下载目录 ...

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

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

  9. vulnhub billu:b0x

    知识点 SQLi.目录爆破.数据库操作.文件包含漏洞.提权.反弹shell 解题步骤 nmap扫描有80,22端口 nmap -sV -Pn -T 4 192.168.220.132 访问网页提示sq ...

  10. IOS Safari、微信小程序 img或者其他标签元素出现黑边、黑线阴影

    这个问题最开始出现在小程序上,然后在社区找到一个一样得案例 案例:https://developers.weixin.qq.com/community/develop/doc/000608420706 ...