字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。
1、单引号
skill='java'
echo 'I am goot at $skill'
- 输出结果为:
I am goot at $skill
- 单引号字符串的限制:
- 单引号里的任何字符都会
原样输
出,单引号字符串中的变量是无效的
; - 单引号字串中
不能出现单独
一个的单引号(对单引号使用转义符后也不行
),但可成对出现,作为字符串拼接使用。
- 单引号里的任何字符都会
2、双引号
skill='java'
echo "I am goot at $skill"
- 输出结果为:
I am goot at java
- 双引号的优点:
- 双引号里
可以有变量
- 双引号里
可以出现转义字符
- 双引号里
3、获取字符串长度
skill='java'
echo ${skill} # 输出结果: java
echo ${#skill} # 输出结果: 4
4、截取子字符串(从0计数,-1代表最后一个)
再详细的参考这篇
${变量:startIndex}
${变量:startIndex:length}
- 以下实例从字符串第 2 个字符开始截取 2个字符:
str="I am goot at $skill"
echo ${str:2} # 输出结果为: am goot at java
echo ${str:2:2} # 输出结果为: am
- -1代表最后一位,因此,-2就是截取最后两位,但是我们可以看到
:
和-2
之间必须加空格
- 为了不那么麻烦
眼神不好
,我们可以使用0-1
来代替-1
skill=java
str="I am goot at $skill"
echo ${str:2} ## am goot at java
echo ${str: -1} ## �
echo ${str: -2} ## ��
echo ${skill:-2} ## java
echo ${skill: -2} ## va
5、查找子字符串(结果为从1计数)
- 查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
str="I am goot at $skill"
echo `expr index "$str" am` # 输出是: 3
tips: 以上脚本中 是反引号(Esc下面的),而不是单引号 ',不要看错了哦。