如何在shell脚本中组合两个字符串时删除重复字符



我有两个字符串,我想将它们组合起来并删除重复的字符串。

示例:

str1=/home/username
str2=/home/username/project
str3=$str1+$str2

结果:

echo $str3
>> /home/username/project

我是如何像str3一样提供它的?

没有内置的功能。如果您知道str2可能包含也可能不包含str1作为前缀,您可以通过参数扩展排除它:

str3=$str1${str2#"$str1"}

引号是防止模式中出现shell元字符所必需的;例如,${foo#*}foo中删除所有内容,而${foo#"*"}仅删除文字星号(如果存在)。