在我的bash脚本中,我有一个字符串及其前缀/后缀。我需要从原始字符串中删除前缀/后缀。
bash
例如,假设我有以下值:
string="hello-world" prefix="hell" suffix="ld"
我如何得到以下结果?
result="o-wor"
$ foo=${string#"$prefix"} $ foo=${foo%"$suffix"} $ echo "${foo}" o-wor
这记录在手册的Shell Parameter Expansion部分:
${parameter#word} ${parameter##word} 该词被扩展以产生一个模式并根据下面描述的规则进行匹配(请参阅模式匹配)。如果模式匹配参数扩展值的开头,则扩展的结果是删除了最短匹配模式(#案例)或最长匹配模式(案例)的参数扩展值。##
${parameter#word} ${parameter##word}
${parameter#word}
${parameter##word}
该词被扩展以产生一个模式并根据下面描述的规则进行匹配(请参阅模式匹配)。如果模式匹配参数扩展值的开头,则扩展的结果是删除了最短匹配模式(#案例)或最长匹配模式(案例)的参数扩展值。##
#
##