在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
。