我有这样的代码:
get_base() { echo "${1##*/}"; }
在我们有1个或更多的数据之前,这种方法运行良好 尾部斜杠
我已经找到了如何修复它的解决方案,但
问题是我们需要启用extglob
,而我不需要
想要的是:
ari@ari-gentoo ~ % x='/home/ari///'
ari@ari-gentoo ~ % echo "${x%%+(/)}"
/home/ari
然后,我们可以将其保存到一个临时变量中并运行基本名称 关于它的替换
不管怎样,我的问题是,有没有合适的方法来做这件事 而且它仍然很快(意味着不调用外部命令 因为此函数被调用得相当频繁) 需要启用任何花哨的功能吗?
提前感谢您的回答:)
问答
否,因为所有这些解决方案要么使用命令,要么具有仅go 掉最后一个斜杠而不是倍数的替换表达式:)(例如,当需要为/home/ari时,带有表达式${x%/}的/home/ari//将仅变为/home/ari//)
- 你说的‘适当’是什么意思?
确切地说,我是指在不启用extglobal或任何其他奇特功能的情况下实现的