Simple command-line calculator for tcsh/bash/zsh :

TCSH/CSH :

I have for some year used a simple alias for the calculator command. The alias only requires awk (or gawk), and that tcsh (or csh) is the running shell. This alias will not work with bash/sh/ksh since these shells do not allow arguments in aliases. Just place the following line in your ~/.tcshrc or type at the prompt:

alias calc 'awk "BEGIN{ print \!* }" '
# or with fixed output format:
alias calcfx 'gawk -v CONVFMT="%12.2f" -v OFMT="%.9g" "BEGIN{  print \!* }"'
# When calling calc DO NOT escape "*":
# Example:    calc (3+5)*4/5

BASH:

At a meeting in SSLUG (1997) I was given the idea to use functions for making a bash equivalent of the above calc alias.  In ~/.bash_profile:

function calc () {
    awk "BEGIN { print $* ; }"
}

function calcfx () { 
    gawk -v CONVFMT="%12.2f" -v OFMT="%.9g"  "BEGIN { print $* ; }"
}

With bash it is nescesary to use quotes if the expression contains () or *. For example:

    calc "(3+5) * 4/5"

ZSH:

Thanks to Dan Christiansen who sent the zsh version:

alias calc="noglob _calc" calcfx="noglob _calcfx"

function _calc () {
     awk "BEGIN { print $* ; }"
}         

function _calcfx () {
    gawk -v CONVFMT="%12.2f" -v OFMT="%.9g"  "BEGIN { print $* ; }"
}

Because of noglob, it is not nescesary to use quotes around the expression:

    calc (3+5)*4/5


 -- Frank Damgaard / email: frda(a)post3.tele.dk