1

我有功能

calc() {echo "${1}"|bc -l;}

它适用于 2+2 但当我想要类似的东西时 10^4

calc 10^4
zsh: no matches found: 10^4

是的,我和 bc -l 一样

>>echo 10^4|bc -l
zsh: no matches found: 10^4

但为了解决它,我添加了引号

>>echo "10^4"|bc -l
10000

如何在功能中实现它?如果我这样做"\"${1}\"",它只会回显字符串...

4

1 回答 1

3

^EXTENDED_GLOB在中启用选项时是一个特殊字符zsh它在你的函数被调用之前被扩展,所以在函数内部没有可能的解决方法。

您可以完全禁用EXTENDED_GLOB

setopt no_extended_glob

或为交互式使用提供别名,该别名将扩展为noglob calc,防止文件名扩展:

alias calc='noglob calc'
于 2013-02-07T11:47:20.190 回答