【发布时间】:2019-02-08 16:24:52
【问题描述】:
在 tcsh 中,我可以通过以下方式从路径末尾提取第二个路径元素
cd /some/long/directory/structure/path/
set x=`pwd`
echo ${x:h:h:t}
directory
如何在 bash 中做同样的事情?
我的意思是,bash 也有这种修饰符吗?
【问题讨论】:
-
@CharlesDuffy 不是。这个问题是关于修饰符而不是关于“如何从路径中提取 n 的元素”
-
但是,这样的“修饰符”(在 bash 中,这些都称为parameter expansion 形式)都是实现目标的手段的子集。因此,上面链接的预先存在的问答条目确实讨论了它们——例如,请参阅this answer。
-
坦率地说,如果您将答案限制在“我如何在 bash 中执行 X?”到“我如何使用语法 Y 的直接模拟在 bash 中执行 X?”,我质疑该问题在本质上是否实用,正如our on-topic definition 所要求的那样。 (如果您知道 a 意味着做 X,那么要求更快或更简洁的方法是公平的,但不同的是 只是因为......好吧,什么是实用点?)
-
@CharlesDuffy ...坦率地说,是的,查尔斯,这个问题非常实用。否则我没有被问到:-)。感谢 jhnc 、 chepner 和许多其他发布解决方案的 stackoverflow 用户,他们没有试图展示他们对“我们的主题定义”的“聪明”程度。伙计们——你们真的帮助了我。非常感谢!