微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

当我发现自己遇到算术问题¹时,我喜欢简单地在我的外壳上计算

> echo $(( 3**4 - 2/7*5 ))

当然效果很好。但是,我发现打字太多,所以我定义了

function §()
    echo $(( $@ ))

允许我

> § '3**4 - 2/7*5'

但不是

> § 3**4 - 2/7*5

因为 zsh 告诉我它找不到匹配项(或者更糟的是,如果有匹配项,则扩展文件名)。

如何告诉 zsh shell 我希望它将作为函数参数输入的内容解释为 globs?

我不想做类似的事情

> enter_non_glob_mode
> 3**4 - 2/7*5
> back_to_normal_mode

因为与其这样,我还不如开始dcpython...


¹欧拉妈妈对我说话,轻声细语,智慧之言,电子的力量...... SCNR。

解决方法

使用 noglob 修饰符。

% noglob § 3**4 - 2/7*5
81

为避免每次都键入 noglob,请使用别名插入修饰符。 (您不能将 noglob 放在函数中,因为在计算主体之前已经进行了路径名扩展。)

% alias §='noglob §'
% § 3**4 - 2/7*5
81

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。