#!/bin/sh # Usage: gxpr # Like expr(1), but uses Google's calculator to evaluate . # # Math examples: # $ gxpr '1 + 1' # 2 # # $ gxpr 2 ^ 16 # 65536 # # $ gxpr '(2 ^ 1) + (2 ^ 2) + (2 ^ 3) + (2 ^ 5)' # 46 # # $ gxpr '5*9+(sqrt 10)^3=' # 76.6227766 # # Conversion examples: # $ gxpr 1GB in KB # 1048576 kilobytes # # $ gxpr 10 megabits in megabytes # 1.25 megabytes # # $ gxpr 2 miles in inches # 126720 inches CURL='curl -s --header User-Agent:gxpr/1.0' SEARCH="http://www.google.com/search" EXPR=$(echo "$@" | sed -e 's/+/%2B/g' -e 's/ /+/g') res=$( $CURL "$SEARCH?q=$EXPR" | grep '

.*?= (.*?).*@\1@' | perl -pe 's@\x{a0}@@g' | perl -pe 's@ @@g' | perl -pe 's@<.*?>@@g' ) # if we don't have a result, assume it's an invalid expression test -z "$res" && { echo "invalid expression:" "$@" 1>&2 exit 1 } echo "$res"