Last Updated:

Calcolatrice Bash

Dario Fadda Bash

Impariamo Bash - Calcolatrice di base

Benvenuti nel mini progetto della serie di scripting BASH. Ti piace? 🙂

Costruiremo un semplice programma di calcolo usando il linguaggio di scripting BASH e allo stesso tempo rafforzeremo tutti i concetti già insegnati. In un breve riepilogo, abbiamo esplorato gli argomenti fondamentali su variabili, decisioni, dichiarazioni di controllo e argomenti. Poi c'erano argomenti secondari minori come l'utilizzo di commenti nei programmi bash e tipi di operatori.

Assicurati di fare riferimento a quei capitoli precedenti nel caso in cui hai bisogno di imparare di nuovo le informazioni perse.

Algoritmo o procedura

Esistono due modi per utilizzare questo programma di calcolo in base ai metodi di input:

Argomenti: utilizzare il programma una volta

Comando di lettura: usa il programma all'infinito

Entrambi avranno un'opzione di uscita che darà all'utente la flessibilità di uscire dal programma se lo desidera.

Per gli argomenti inseriti, dobbiamo assicurarci che un massimo di 2 argomenti sia accettabile perché in matematica una semplice operazione di somma, sottrazione, divisione o moltiplicazione richiede solo due operandi. Altrimenti, stamperemo un messaggio che informa l'utente della limitazione del programma.

Per l'input del comando di lettura , utilizzeremo il ciclo while per implementare un flusso di controllo infinito in modo che il programma esca solo quando viene indicato dall'utente. All'utente verrà chiesto di immettere i valori operand1 e operand2 e il risultato verrà calcolato in base alla sua scelta.

Coding Bash

#!/bin/bash
# Two arguments are passed as inputs.
# Will calculate based on the user choice
# And exit the calculator program straightaway
if [[ $# -eq 2 ]] ; then
# get operand1 and operand2 values from the arguments
operand1=
operand2=
# Offer choices
echo 1. Addition
echo 2. Subtraction
echo 3. Multiplication
echo 4. Division
echo 5. Exit
echo Enter your choice:
read choice
# start computing
if [[ $choice -eq 1 ]] ; then
echo ----------------------------------------
echo Addition of $operand1 and $operand2 is $((operand1+operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 2 ]] ; then
echo ----------------------------------------
echo Subtraction of $operand1 and $operand2 is $((operand1-operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 3 ]] ; then
echo ----------------------------------------
echo Multiplication of $operand1 and $operand2 is $((operand1*operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 4 ]] ; then
echo ----------------------------------------
echo Division of $operand1 and $operand2 is $((operand1/operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 5 ]] ; then
exit
else
echo ----------------------------------------
echo Invalid choice...
echo ----------------------------------------
echo
fi
# This portion will run the calculator program infinitely unless
# the exit option 5 is given as input by the user
elif [[ $# -eq 0 ]] ; then
while true
do
# Offer choices
echo 1. Addition
echo 2. Subtraction
echo 3. Multiplication
echo 4. Division
echo 5. Exit
echo Enter your choice:
read choice
# get operands and start computing based on the user's choice
if [[ $choice -eq 1 ]] ; then
echo Enter operand1 value:
read operand1
echo Enter operand2 value:
read operand2
echo ----------------------------------------
echo Addition of $operand1 and $operand2 is $((operand1+operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 2 ]] ; then
echo Enter operand1 value:
read operand1
echo Enter operand2 value:
read operand2
echo ----------------------------------------
echo Subtraction of $operand1 and $operand2 is $((operand1-operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 3 ]] ; then
echo Enter operand1 value:
read operand1
echo Enter operand2 value:
read operand2
echo ----------------------------------------
echo Multiplication of $operand1 and $operand2 is $((operand1*operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 4 ]] ; then
echo Enter operand1 value:
read operand1
echo Enter operand2 value:
read operand2
echo ----------------------------------------
echo Division of $operand1 and $operand2 is $((operand1/operand2))
echo ----------------------------------------
echo
elif [[ $choice -eq 5 ]] ; then
exit
else
echo ----------------------------------------
echo Invalid choice.. Please try again
echo ----------------------------------------
echo
fi
done
else
echo ----------------------------------------
echo You either passed too many parameters or too less
echo than the optimum requirement.
echo
echo This program accepts a maximum of 2 arguments or no
echo argument at all in order to run successfully.
echo ----------------------------------------
fi

Alcuni chiarimenti

Nel suddetto programma di calcolatrice, potresti notare due cose nuove: ciclo while infinito e parola chiave exit.

Ciclo infinito

Esistono molti modi per implementare un ciclo infinito usando i cicli for, while o until. Nel nostro programma, l'abbiamo implementato usando un ciclo while.

Poiché la condizione è sempre vera, il ciclo viene eseguito in modo infinito. Ovviamente, abbiamo menzionato l'opzione di uscita in modo che l'utente possa terminare il programma se voleva farlo bene? Abbiamo la parola chiave

Uscita

Una volta che l'interprete bash incontra questa parola chiave, terminerà direttamente il programma in esecuzione. Abbiamo implementato un'opzione, ad esempio, 5 per terminare il programma in modo che l'utente non sia bloccato per sempre con il programma della calcolatrice.

Pensieri finali

Il codice è piuttosto lungo ma fortunato. Stai dando un'occhiata al progetto software nella vita reale. C'è molto altro da imparare, ma questa serie ha lo scopo di coprire solo i fondamenti in modo da ottenere i migliori benefici dopo aver appreso questo linguaggio di scripting in un breve lasso di tempo.

Ora puoi implementare molti programmi interessanti e condividerli con i tuoi amici, spingersi oltre cercando ulteriori informazioni sullo scripting BASH, mettersi a proprio agio nell'apprendimento di altri linguaggi di programmazione come C e C ++, ecc. Naturalmente, la sintassi varierà e potrebbe ottenere all'inizio ti stupisci, ma noterai che i concetti già insegnati qui sono gli stessi per quasi tutti i linguaggi di programmazione.

Conclusione

BASH è un linguaggio di scripting e l'interprete di shell predefinito per quasi tutte le principali distribuzioni Linux. Quindi hai un'elevata scalabilità nel caso in cui desideri distribuire fantastici programmi bash di Linux su più distribuzioni. Inoltre, ora è possibile comprendere e personalizzare la maggior parte dei file di configurazione del software con i concetti appresi qui. Sono tutti script 🙂