zsh - 在交互式 shell 中关闭函数参数中的 ZSH glob 扩展
问题描述
当我发现自己遇到算术困难时¹,我喜欢简单地在我的外壳上计算
> echo $(( 3**4 - 2/7*5 ))
这当然效果很好。但是,我发现打字太多,所以我定义了
function §()
echo $(( $@ ))
这让我可以
> § '3**4 - 2/7*5'
但不是
> § 3**4 - 2/7*5
因为 zsh 告诉我它找不到匹配项(或者更糟糕的是,如果有一些匹配项,则扩展文件名)。
我如何告诉 zsh shell 我希望它不将作为参数输入的东西解释为 glob?
我不想做类似的事情
> enter_non_glob_mode
> 3**4 - 2/7*5
> back_to_normal_mode
因为不是那样,我还不如开始dc
,python
……</p>
¹欧拉母亲对我说话,低语着智慧的话语,e的力量...... SCNR。
解决方案
使用noglob
修饰符。
% noglob § 3**4 - 2/7*5
81
为避免noglob
每次都必须键入,请使用别名插入修饰符。(您不能放入noglob
函数内部,因为路径名扩展在评估主体之前已经发生。)
% alias §='noglob §'
% § 3**4 - 2/7*5
81
推荐阅读
- asynchronous - 如何将迭代器转换为成功时的流或失败时的空流?
- javascript - 使用Javascript将对象数组转换为对象
- npm - 如何在 npm 脚本中更喜欢全局 npm 而不是本地 npm?
- javascript - 如何在单击时更改具有一个 id 的多个按钮类?
- go - 带有 go 和 dep 的 Heroku:`推送被拒绝:无法编译 Go 应用程序`
- python - 对单词进行计数和排序时,带有大 .txt 文件 Python 的 MemoryError
- jquery - jQuery:仅当用户输入正确的字符串格式时才启用提交按钮
- node.js - 如何将 mongoose 查询的结果保存到变量中,以便在代码中*稍后*使用它的值?
- ios - 我想从 iOS 中的 html 内容中删除 wordpress 简码
- python - 如何在每次迭代中根据索引替换列值。以便每个表在每次迭代中都有新的值集