【发布时间】:2020-05-20 13:06:40
【问题描述】:
假设我有一个包含目录路径的变量(带有斜杠):
dir="path/to/dir/"
如何使用 Zsh 的参数扩展提取最后一个目录(即"dir")?我想避免调用外部程序(如sed)。
【问题讨论】:
假设我有一个包含目录路径的变量(带有斜杠):
dir="path/to/dir/"
如何使用 Zsh 的参数扩展提取最后一个目录(即"dir")?我想避免调用外部程序(如sed)。
【问题讨论】:
在 Zsh 中,你可以嵌套expansions。所以这行得通:
$ dir="path/to/dir/"
$ echo "${${dir%/}##*/}"
dir
【讨论】:
zsh 中的参数扩展可以使用 csh 样式的历史修饰符;在这种情况下,您可以使用:t
t Remove all leading pathname components, leaving the tail. This works like `basename'.
% dir="path/to/dir/"
% print $dir
path/to/dir/
% print $dir:t
dir
【讨论】: