我想创建我的第一个zsh完成脚本,在这种情况下命令netcfg。zsh文件名globbling /替换
这听起来可能听起来有点蹩脚我在第一个障碍,免责声明,我知道如何粗鲁地做到这一点,但我寻求“ZSH WAY”来做到这一点。
我需要列出/ etc/networking中的文件,但仅列出文件,而不是目录组件,因此我执行以下操作。
echo $(ls /etc/network.d/*(.))
/etc/network.d/ethernet-dhcp /etc/network.d/wireless-wpa-config
我想要的是什么:
ethernet-dhcp wireless-wpa-config
所以我尝试(原谅我naivity):
echo ${(s/*\/)$(ls /etc/network.d/*(.))}
/etc/network.d/ethernet-dhcp /etc/network.d/wireless-wpa-config
看来,这是不行的,我敢肯定有一定通过分裂成一个数组并获得最后一部分来做到这一点是很聪明的方式,但正如我所说的,我完全是这样做的。
任何建议感激地收到。
'$ {param#pattern}'参数扩展是去除前缀的方法。 '$ {param%pattern}'去除后缀。 – 2010-07-05 10:18:03