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 に答える