Shell 如何以正确的方式获取引用的参数?
我有功能Shell 如何以正确的方式获取引用的参数?,shell,zsh,Shell,Zsh,我有功能 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}\”操作,它只会回显字符串…^是一
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}\”
操作,它只会回显字符串…^
是一个特殊字符,当中的扩展全局
选项在zsh
中启用时。它是在调用函数之前展开的,因此在函数内部没有任何解决方法
您可以同时禁用EXTENDED\u GLOB
:
setopt no_extended_glob
或者提供一个别名供交互使用,该别名将扩展为noglob calc
,防止文件名扩展:
alias calc='noglob calc'