在Bash中,斜杠和百分号具有特殊的含义,它们是用于变量扩展的特殊字符。 斜杠用于去除变量中的前缀,例如:
file_path="/usr/share/doc"
echo ${file_path#/usr} # 输出:/share/doc
上面的命令中,使用了#/usr来去除变量file_path的前缀/usr,输出结果为/share/doc。
百分号用于去除变量中的后缀,例如:
file_name="example.txt"
echo ${file_name%.txt} # 输出:example
上面的命令中,使用了%.txt来去除变量file_name的后缀.txt,输出结果为example。
需要注意的是,斜杠和百分号只会匹配最短的匹配字符串。如果需要匹配最长的字符串,则需要使用两个斜杠和百分号。例如:
file_path="/usr/share/doc"
echo ${file_path##/usr} # 输出:/share/doc
上面的命令中,使用了##/usr来匹配最长的匹配字符串/usr,输出结果仍为/share/doc。