字符串

字符串可以由单引号' '包围,也可以由双引号" "包围,也可以不用引号。它们之间是有区别的,稍后我们会详解。

字符串举例:
  str1=c.biancheng.net
  str2="shell script"
  str3='蒂花之秀洗手液'

下面我们说一下三种形式的区别:
由单引号' '包围的字符串:

任何字符都会原样输出,在其中使用变量是无效的。
字符串中不能出现单引号,即使对单引号进行转义也不行。

由双引号" "包围的字符串:
如果其中包含了某个变量,那么该变量会被解析(得到该变量的值),而不是原样输出。
字符串中可以出现双引号,只要它被转义了就行。

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

我们通过代码来演示一下三种形式的区别:

  1. !/bin/bash

  2. n=74

  3. str1=c.biancheng.netn str2="shell \"script\"n"

  4. str3='C语言中文网 $n'

  5. echo $str1

  6. echo $str2

  7. echo $str3

</pre>

运行结果:

c.biancheng.net74
shell "script" 74
C语言中文网 $n

str1 中包含了$n,它被解析为变量 n 的引用。$n后边有空格,紧随空格的是 str2;Shell 将 str2 解释为一个新的变量名,而不是作为字符串 str1 的一部分。

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

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

获取字符串长度

在 Shell 中获取字符串长度很简单,具体方法如下:

${#string_name}

string_name 表示字符串名字。

下面是具体的演示:

<pre class="sh sh_sh snippet-formatted sh_sourceCode">

  1. !/bin/bash

  2. str="http://c.biancheng.net/shell/"

  3. echo ${#str}

</pre>

运行结果:
29

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、set集合【了解】 1.概述 和数学上的集合基本是一样的,特点:不允许有重复元素,可以进行交集,并集,差集的运...
    墨雨love薏雪阅读 3,897评论 0 0
  • 1.计算机的储存形式: 计算机在存储数据的时候,都是以二进制的形式存在计算机中。1.原码:数据的二进制形式'''正...
    大黄蜂人工智能阅读 3,157评论 0 0
  • ASCII(str) 返回字符串 str 中最左边字符的 ASCII 代码值。如果该字符串为空字符串,则返回0。如...
    JavaEdge阅读 3,311评论 0 1
  • 一、复习 1、字符串(str) 通过双引号或者单引号引起来的内容就是字符串 2、Unicode编码 3、转义字符 ...
    Sakura_flower阅读 3,633评论 0 4
  • 1.什么是字符串(str) 字符串是容器型数据类型(序列),不可变,有序 不可变 - 不支持增删改;有序 - 支持...
    生命在于不睡觉阅读 877评论 0 0