我们学习的所有编程语言中都存在字符串,在shell中也同样存在并且十分重要。
字符串可以用单引号、双引号,也可以不用引号。
一、单引号字符串
demo_str='这是一段字符串\n即使有换行符也不会换行'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
- 单引号字串中不能出现单引号,对单引号使用转义符后也不行
单引号字符串使用范例
#!/bin/bash # filename: demo.sh # author:小白 # url:www.baidu.cn name="小白" demo_str='这是一段字符串 ${name} 嵌入的变量名不会起作用' echo $demo_str
脚本运行结果
$ sh demo.sh 这是一段字符串 ${name} 嵌入的变量名不会起作用
二、双引号字符串
name="小白" demo_str="这是一段字符串 \${name} 嵌入的变量名会起作用 ${name}"
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
范例: 双引号字符串使用范例
#!/bin/bash # filename: demo.sh # author:小白 # url:www.baidu.cn name="小白" demo_str="这是一段字符串 \${name} 嵌入的变量名会起作用 ${name}" echo $demo_str
脚本运行结果
$ sh demo.sh 这是一段字符串 ${name} 嵌入的变量名会起作用 小白
三、拼接字符串
Shell 中拼接支付串只需要把两个字符串变量放到一起可以了,比如
greeting="hello, " name="小明!" demo_str=${greeting}${name}
范例: 拼接字符串
site_name="小白(www.baidu.com)" greeting="hello, "$site_name" !" greeting_1="hello, ${site_name} !" demo_str=${greeting}${greeting_1} echo $demo_str
脚本运行结果
$ sh demo.sh hello, 小白(www.baidu.com) !hello, 小白(www.baidu.com) !
四、常见用法
1、获取字符串长度
使用 ${#变量名}
可以获取字符串的长度。
范例: 获取字符串长度
#!/bin/bash # filename: demo.sh # author:小白 # url:www.baidu.cn site_name="小白(www.baidu.com)" echo ${#site_name}
运行脚本输出结果
$ sh demo.sh 13
2、提取子字符串
使用 ${#变量名:开始索引:提取长度}
可以提取子字符串
注意 字符串索引从 0 开始,也就是第一个字符的索引是 0
范例: 从 demo_str
中第 2 个字符开始提取 4 个字符
#!/bin/bash # filename: demo.sh # author:xiaobai # url:www.baidu.cn site_name="小白(www.baidu.com)" echo ${site_name:1:4}
运行脚本输出结果
$ sh demo.sh 白(WW
如果省略截取长度,则表示一直到结束
#!/bin/bash # filename: demo.sh # author:小白 # url:www.baidu.cn site_name="小白(www.baidu.com)" echo ${site_name:1}
脚本运行结果
$ sh demo.sh 白(www.baidu.com)
我们字符串就简单学习到这里,明天见!努力每天一学!