👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术
shell字符串操作(声明、长度、拼接、切片、转换、替换等操作)
1. 单、双引号的区别
1.1 单引号
使用单引号括起来的字符串中的所有字符都会被原样输出,不会进行变量替换和转义字符的处理,例如:
str='Hello $USER, today is $(date)' echo $str # 输出 Hello $USER, today is $(date)
1.2 双引号
使用双引号括起来的字符串中的变量会被解释成它们的值,并且转义字符会被处理,例如:
user="Tom" str="Hello $user, today is $(date)" echo $str # 输出 Hello Tom, today is Mon May 10 00:00:00 UTC 2023
另外,双引号中也可以使用反斜杠对特殊字符进行转义,例如:
str="Hello \"world\"!" echo $str # 输出 Hello "world"!
2. 字符串声明
st1 = 'zhangsan' st2 = 'lisi'
3. 字符串拼接
3.1 双引号拼接
# 方法一: na='sunwukong1' na1="hello,${na}!" echo $na1 # 输出:hello,sunwukong1! # 方法二: na='sunwukong1' na1="hello,"${na}"!" echo $na1 # 输出:hello,sunwukong1!
3.2 单引号拼接
na='sunwukong' na1='hello,'$na'!' echo $na1 # 输出:hello,sunwukong! na='sunwukong' na2='hello,${na}!' echo $na2 # 输出:hello,${na}! 不转译
3.3 直接拼接
str1="Hello" str2="World" echo $str1$str2 # 输出 HelloWorld
4. 字符串长度
string="Hello World" echo ${#string} # 输出 11
5. 字符串切片
${string:position:length}
来截取字符串,其中position是起始位置,length是截取的长度。
na='sunwukong' echo ${na:1:3} # 输出:unw
6. 字符串替换
string="Hello World" echo ${string/Hello/Hi} # 输出 Hi World echo ${string//o/0} # 输出 Hell0 W0rld
7. 字符串查找
${string#substring}
可以从字符串开头删除最短的匹配子字符串
${string##substring}
可以从字符串开头删除最长的匹配子字符串。
string="Hello World" echo ${string#Hello} # 输出 World echo ${string##H} # 输出 ello World
8. 字符串大小写转换
${string^^}可以将字符串中所有字符转换为大写
${string,}可以将字符串中所有字符转换为小写
string="Hello World" echo ${string^^} # 输出 HELLO WORLD echo ${string,,} # 输出 hello world