如何以正确的方式获取引用的参数?

时间:2013-02-07 11:41:48

标签: shell zsh

我有功能

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

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

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

是的我和bc -l <​​/ p>一样

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

但为了解决这个问题,我添加了引号

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

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

1 个答案:

答案 0 :(得分:3)

^中启用EXTENDED_GLOB选项时,

zsh是一个特殊字符。它在您的函数被调用之前已经扩展,因此函数中没有可能的

您可以完全停用EXTENDED_GLOB

setopt no_extended_glob

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

alias calc='noglob calc'