glob 模式不会在 zsh 中的文件内部扩展

Theonlygusti

我正在尝试从 glob 中排除一个目录。

这适用于命令行:

$ export exclude=BigDir
$ for d in ^$exclude/ ; do echo "$d" ; done
SmallDir/
SmallerDir/
$

但在文件中它根本不起作用

#!/bin/zsh

exclude=BigDir
for d in ^$exclude/ ; do echo "$d" ; done

运行./test或我保存它打印文字字符串

^BigDir/

如何让它在脚本文件中正确展开?

伊尼安

您错误地使用了?shell使用的 glob 字符和正则表达式构造^, $for您示例中循环无法进行正则表达式匹配以排除提供的目录,因为它仅进行路径名扩展(又名全局扩展)

除非您通过in 中启用扩展 glob 选项来让 shell 知道要处理^$视为特殊的,否则您将无法实现您想要做的事情。extglobbashextendedglobzsh

所以你可能只需要

setopt extendedglob
print -rl ^BigDir*

这意味着打印任何东西,除了匹配文件名BigDir

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Bootstrap(实际上是JQuery)DatePicker不会在Wicket模式中模糊时隐藏

剧情不会在Jupyter中显示

针对zsh中的任意字符串测试glob?

为什么zsh使用GNU parallel在bash脚本中为我扩展glob?

使用远程数据扩展Bash Glob模式

Firebase不会在方法内部跳转

裁剪器不会在模式中的img元素中加载

sed:将整个文件读入模式空间而不会在单行输入中失败

Zsh中的Glob中的完整路径

扩展glob模式的最佳方法?

Glob函数中的RegEx模式

尽管设置了EXTENDED_GLOB,但zsh glob模式无法匹配除一个文件以外的所有文件,无法正常工作

zsh:glob的菜单完成

在UNSAFE模式下使用文件路径创建组件不会在数据库中创建函数

UIActivityIndicator不会在iOS中停止

zsh:始终启用扩展glob是否存在问题?

变量中的glob字符在bash中扩展,但在zsh中不扩展

如何在Glob模式(zsh)中使用参数替换

UILabel不会在UIView中居中

ZSH:具有前缀的glob

限制zsh中的glob限定词的范围

zsh不会在提示中重新加载功能

以模式输入的值不会在文档 js 中的更改事件时触发

片段不会在活动中显示

Vue 不会在生产模式下更新由 API 调用加载的组件道具,但会在开发中更新

DialogFragment 不会在 AsyncTask 中关闭

委托模式不会在实现它的类中触发

Rails 6.1.1 不会在生产模式下加载 webpacker 创建的 CSS 文件

在交互式 shell 中关闭函数参数中的 ZSH glob 扩展