2013-02-07 20 views
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}\""它只會回顯字符串...

回答

3

^是一個特殊字符,當EXTENDED_GLOB選項啓用zsh。它在函數被調用之前展開,所以在函數內部沒有解決方法

您可以完全禁用EXTENDED_GLOB

setopt no_extended_glob 

或提供交互使用的別名,這將拓展到noglob calc,防止文件名擴展:

alias calc='noglob calc' 
相關問題