📅  最后修改于: 2023-12-03 14:56:50.799000             🧑  作者: Mango
在 Shell 编程中,组合字符串是经常需要用到的操作。本文将介绍如何在 Bash 中组合字符串,包括字符串拼接、字符串替换、字符串剪裁、字符串分割等操作。
字符串拼接可以使用两个字符串连接符:+
和 .
,例如:
#!/bin/bash
str1="Hello"
str2="World"
echo $str1 $str2 # 输出:Hello World
echo $str1$str2 # 输出:HelloWorld
echo $str1$str2$str1 # 输出:HelloWorldHello
echo ${str1}" "${str2}"!" # 输出:Hello World!
上述代码使用 $str1
和 $str2
分别存储了 "Hello" 和 "World" 两个字符串,其余代码使用了不同的方法将这两个字符串组合输出。需要注意的是,使用 ${str1}
的形式,可以在字符串后添加一些固定的内容,如空格和其他符号。
字符串替换可以使用 ${string/old-string/new-string}
语法,$string 是待处理的字符串,old-string 是需要替换的字符串,new-string 是替换后的字符串,例如:
#!/bin/bash
str="Shell Script Tutorial"
echo ${str/Shell/Linux} # 输出:Linux Script Tutorial
# 多次替换
echo ${str/S/s}
echo ${str/e/E}
echo ${str/l/L}
echo ${str/l/L}
echo ${str/ /-}
上述代码使用了 /${string/old/new}
的方式进行字符串替换。最后5行代码分别替换了 S
、e
、l
、空格和第一个 l
。
字符串剪裁可以使用 ${string:start:stop}
的语法,其中 start
和 stop
分别为截取起始位置和停止位置(不包括该位置的字符),例如:
#!/bin/bash
str="www.baidu.com"
echo ${str:4} # 输出:baidu.com
echo ${str:4:5} # 输出:baidu
echo ${str:4:-4} # 输出:baidu
上述代码使用了 ${string:start:stop}
的方式截取指定字符串,其中 str
是待处理的字符串,:4
表示从第5个字符开始,:-4
表示从倒数第4个字符开始截取。
字符串分割可以使用 ${string#substring}
和 ${string##substring}
两个语法,其中 substring
为指定的分割符,例如:
#!/bin/bash
str="http://www.baidu.com"
echo ${str#http://} # 输出:www.baidu.com
echo ${str#http://www.} # 输出:baidu.com
echo ${str#https://} # 输出:http://www.baidu.com
echo ${str##http://} # 输出:www.baidu.com
echo ${str##http://www.} # 输出:baidu.com
echo ${str##https://} # 输出:http://www.baidu.com
上述代码使用了 ${string#}
和 ${string##}
的方式分割指定字符串,其中 str
是待处理的字符串,#
和 ##
分别表示从前往后匹配,${string#substring}
找到第一个 substring
并删除其前面部分的字符,${string##substring}
找到最后一个 substring
并删除其前面部分的字符。
本文介绍了在 Bash shell 中,如何进行字符串的各种操作,通过以上的代码示例可以看出,组合字符串的操作非常丰富灵活,可以满足不同的需求,希望对大家有所帮助。