在交互式函数参数中关闭 ZSH glob 扩展 shell
turn off ZSH glob expansion in function arguments in interactive shell
当我遇到算术难题时¹,我喜欢简单地计算 shell
> 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
…
¹欧拉妈妈对我说话,用智慧的话语、力量……SCNR。
使用 noglob
修饰符。
% noglob § 3**4 - 2/7*5
81
为避免每次都输入 noglob
,请使用别名插入修饰符。 (您不能将 noglob
放在函数内部,因为在计算函数体之前已经进行了路径名扩展。)
% alias §='noglob §'
% § 3**4 - 2/7*5
81
当我遇到算术难题时¹,我喜欢简单地计算 shell
> 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
…
¹欧拉妈妈对我说话,用智慧的话语、力量……SCNR。
使用 noglob
修饰符。
% noglob § 3**4 - 2/7*5
81
为避免每次都输入 noglob
,请使用别名插入修饰符。 (您不能将 noglob
放在函数内部,因为在计算函数体之前已经进行了路径名扩展。)
% alias §='noglob §'
% § 3**4 - 2/7*5
81