Shell Script To Simulate a Simple Calculator

#!/bin/bash
# Shell Program to simulate a simple calculator
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2005 nixCraft project.
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
 
a=$1
op="$2"
b=$3
 
if [ $# -lt 3 ]
then
	echo "$0 num1  opr num2"
	echo "opr can be +, -, / , x"
	exit 1
fi
 
case "$op" in
	+) echo $(( $a + $b ));;
	-) echo $(( $a - $b ));;
	/) echo $(( $a / $b ));;
	x) echo $(( $a * $b ));;
	*) echo "Error ";;
esac
Get the latest tutorials on SysAdmin, Linux/Unix, Open Source, and DevOps topics:
CategoryList of Unix and Linux commands
File Management cat
Firewall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilities dig host ip nmap
OpenVPN CentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Manager apk apt
Processes Management bg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searching grep whereis which
User Information groups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPN CentOS 8 Debian 10 Firewall Ubuntu 20.04
4 comments… add one
  • cristian Sep 25, 2010 @ 23:11

    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

  • Mik3langelo Mar 29, 2009 @ 22:21

    hi
    maybe you writed wrong s# correct is $#

  • Avinash T M Feb 5, 2009 @ 18:03

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

    why it so.
    waiting for your reply

  • Andrew Johnstone Oct 28, 2008 @ 1:06

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.