You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash提取路径最后段并赋值变量遇问题,求解决方法

解决路径最后部分提取问题

方法1:修正expr命令写法

原代码的问题在于expr使用的POSIX基本正则表达式中,捕获组需要用\( \)而非(),且需要匹配前缀部分。修正后代码:

Base=/home/user2/SetOne
Set="$(expr "$Base" : '.*/\([^/]*\)')"
echo "$Set"  # 输出SetOne

方法2:使用bash内置参数扩展(推荐)

无需调用外部命令,直接用bash的参数扩展功能,效率更高:

Base=/home/user2/SetOne
Set="${Base##*/}"
echo "$Set"  # 输出SetOne

${Base##*/}的含义是:从变量Base的开头开始,删除最长的匹配*/的部分,剩余内容就是路径的最后一段。

方法3:使用basename命令

basename是专门用于提取路径最后组件的工具,用法简单直接:

Base=/home/user2/SetOne
Set="$(basename "$Base")"
echo "$Set"  # 输出SetOne

内容的提问来源于stack exchange,提问作者hardt27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 02:57:01