Shell Script To Simulate a Simple Calculator

by on October 20, 2008 · 4 comments

  1. #!/bin/bash
  2. # Shell Program to simulate a simple calculator
  3. # --------------------------------------------------------------------
  4. # This is a free shell script under GNU GPL version 2.0 or above
  5. # Copyright (C) 2005 nixCraft project.
  6. # Feedback/comment/suggestions : http://cyberciti.biz/fb/
  7. # -------------------------------------------------------------------------
  8. # This script is part of nixCraft shell script collection (NSSC)
  9. # Visit http://bash.cyberciti.biz/ for more information.
  10. # -------------------------------------------------------------------------
  11.  
  12. a=$1
  13. op="$2"
  14. b=$3
  15.  
  16. if [ $# -lt 3 ]
  17. then
  18. echo "$0 num1 opr num2"
  19. echo "opr can be +, -, / , x"
  20. exit 1
  21. fi
  22.  
  23. case "$op" in
  24. +) echo $(( $a + $b ));;
  25. -) echo $(( $a - $b ));;
  26. /) echo $(( $a / $b ));;
  27. x) echo $(( $a * $b ));;
  28. *) echo "Error ";;
  29. esac


4000+ howtos and counting! If you enjoyed this article, join 45000+ others and get free email updates!

Click here to subscribe via email.

  • Andrew Johnstone

    Whats wrong with “bc – An arbitrary precision calculator language “???

    echo “((5*2)/2)%2″ | bc

  • Avinash T M

    hi,
    in my system , if i typed fi it shows bash:[s# command not found

    why it so.
    waiting for your reply

  • Mik3langelo

    hi
    maybe you writed wrong s# correct is $#

  • cristian

    aqui les dejo una calculadora basica y cientifica .

    #!/bin/bash
    case $1 in
    #
    -h)echo ” elegir un tipo de calculadora:
    – calculadora basica: Contiene a las cuatro operaciones basicas(+ ,- ,* , /).
    una vez en esta opcion se eligen los numeros y la operacion
    a efectuar dando un enter cada vez que introdusca un numero
    o operacion.

    – calculadora cientifica: Contiene las operaciones necesarias para efectuar calculos
    relacionados con las ciencias y la ingenieria(sen, cos, tan,
    cosen, sec, cotan, arctan, ln, expo, %),una vez en esta,
    se elige el numero de la operacion que se desee y se oprime
    enter, una vez efectuado el script le pedira que ingrese un
    numero, cuando lo anote aprieta enter y saldra por pantalla
    el resultado.”

    exit
    ;;
    esac

    # Limpiar pantalla
    clear
    # Imprime en la terminal calculadora cientifica, es de adorno:
    echo “##################################################”
    echo “# C A L C U L A D O R A C I E N T I F I C A #”
    echo “##################################################”
    # Espacio:
    echo “”
    # Menu interactivo:
    echo ” Seleccione un tipo de calculadora ”
    echo “”
    # Opciones del menu interactivo:
    echo ” 1 -> calculadora basica ”
    echo ” 2 -> calculadora cientifica”
    # Espacio:
    echo “”
    # Leer el menu interactivo:
    read calculadora
    # Si la opcion es 1:
    if [ $calculadora = "1" ]
    # Entonces:
    then
    # Pide datos al usuario de la calculadora basica:
    echo “Introduce el primer numero: ”
    # Lee el num1:
    read num1
    # Pide datos al usuario sobre la operacion a efectuar:
    echo “Introduce operacion (+, -, *, /):”
    # Leer operacion:
    read oper
    # Imprime en pantalla:
    echo “Introduce el segundo numero: ”
    read num2
    # Calculadora:
    res=$(echo “$num1 $oper $num2″|bc -l)
    # Imprime en pantalla:
    echo ” -> $num1 $oper $num2 = $res”
    # FIN CALCULADORA BASICA
    # si la opcion es 2:
    elif [ $calculadora = "2" ]
    then
    # Imprime el siguiente menu interactivo:
    echo “Ingresa alguna funcion”
    echo “”
    echo ” 1 -> sen ”
    echo ” 2 -> cos ”
    echo ” 3 -> tan ”
    echo ” 4 -> sec ”
    echo ” 5 -> cosec ”
    echo ” 6 -> cotan ”
    echo ” 7 -> arctan ”
    echo ” 8 -> logaritmo natural ”
    echo ” 9 -> raiz cuadrada ”
    echo ” 10 -> “A” elevado a “B” ”
    echo ” 11 -> El a% de b ”
    echo “”
    # Leer la operacion elegida:
    read “operacion”
    # Si es la 1:
    if [ $operacion = "1" ]
    then
    echo “Ingrese el angulo a evaluar en radianes”
    read angulo
    # Calculadora:
    res=$(echo “s($angulo)”|bc -l)
    # Imprime en pantalla:
    echo “=> sen($angulo)= $res”
    # Si es la 2:
    elif [ $operacion = "2" ]
    then
    echo “Ingrese el angulo a evaluar en radianes”
    read angulo
    # Calculadora
    res=$(echo “c($angulo)”|bc -l)
    echo “=> cos($angulo)= $res”
    # Si es la 3:
    elif [ $operacion = "3" ]
    then
    echo “Ingrese el angulo a evaluar en radianes”
    read angulo
    res=$(echo “s($angulo)/c($angulo)”|bc -l)
    echo “=> tan($angulo)= $res”
    elif [ $operacion = "4" ]
    then
    echo “Ingrese el angulo a evaluar en radianes”
    read angulo
    res=$(echo “1/c($angulo)”|bc -l)
    echo “=> sec($angulo)= $res”
    elif [ $operacion = "5" ]
    then
    echo “Ingrese el angulo a evaluar en radianes”
    read angulo
    res=$(echo “1/s($angulo)”|bc -l)
    echo “=> cosec($angulo)= $res”
    elif [ $operacion = "6" ]
    then
    echo “Ingrese el angulo a evaluar en radianes”
    read angulo
    res=$(echo “c($angulo)/s($angulo)”|bc -l)
    echo “=> cotan($angulo)= $res”
    elif [ $operacion = "7" ]
    then
    echo “Ingrese el numero a evaluar”
    read numero
    res=$(echo “a($numero)”|bc -l)
    echo “=> arctan($numero)= $res”
    elif [ $operacion = "8" ]
    then
    echo “Ingrese el numero a evaluar”
    read numero
    res=$(echo “l($numero)”|bc -l)
    echo “=> ln($numero)= $res”
    elif [ $operacion = "9" ]
    then
    echo “Ingrese el numero a evaluar”
    read numero
    res=$(echo “sqrt($numero)”|bc -l)
    echo “=> raiz($numero)= $res”
    elif [ $operacion = "10" ]
    then
    echo “Ingrese el numero que quieres elevar”
    # Lee el numero ingresado:
    read numero1
    # Imprime en pantalla:
    echo “Ingresa la potencia”
    # Lee el numero ingresado:
    read numero2
    # Calculadora:
    res=$(echo “$numero1^$numero2″|bc -l)
    # Imprime como resultado en la pantalla:
    echo “=> $numero1 elevado a $numero2= $res”
    elif [ $operacion = "11" ]
    then
    echo “Ingresa el porcentaje que quieres”
    read numero1
    echo “Ingresa el numero al que se le sacara el porcentaje”
    read numero2
    res=$(echo “$numero1*$numero2/100″|bc)
    echo “=> el $numero1% de $numero2= $res”
    # Termino de la cadena:
    fi

    # Termino de la cadena principal:
    fi

Previous Script:

Next Script: