Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 如何以正确的方式获取引用的参数?_Shell_Zsh - Fatal编程技术网

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'