Last Updated:

Calcolatrice Bash

Dario Fadda Bash

Impariamo Bash - Calcolatrice di base

Benvenuti nel mini progetto della serie di scripting BASH. Spero che tu sia eccitato! 🙂

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 (plain)
  1. #!/bin/bash
  2. # Two arguments are passed as inputs.
  3. # Will calculate based on the user choice
  4. # And exit the calculator program straightaway
  5. if [[ $# -eq 2 ]] ; then
  6. # get operand1 and operand2 values from the arguments
  7. operand1=
  8. operand2=
  9. # Offer choices
  10. echo 1. Addition
  11. echo 2. Subtraction
  12. echo 3. Multiplication
  13. echo 4. Division
  14. echo 5. Exit
  15. echo Enter your choice:
  16. read choice
  17. # start computing
  18. if [[ $choice -eq 1 ]] ; then
  19. echo ----------------------------------------
  20. echo Addition of $operand1 and $operand2 is $((operand1+operand2))
  21. echo ----------------------------------------
  22. echo
  23. elif [[ $choice -eq 2 ]] ; then
  24. echo ----------------------------------------
  25. echo Subtraction of $operand1 and $operand2 is $((operand1-operand2))
  26. echo ----------------------------------------
  27. echo
  28. elif [[ $choice -eq 3 ]] ; then
  29. echo ----------------------------------------
  30. echo Multiplication of $operand1 and $operand2 is $((operand1*operand2))
  31. echo ----------------------------------------
  32. echo
  33. elif [[ $choice -eq 4 ]] ; then
  34. echo ----------------------------------------
  35. echo Division of $operand1 and $operand2 is $((operand1/operand2))
  36. echo ----------------------------------------
  37. echo
  38. elif [[ $choice -eq 5 ]] ; then
  39. exit
  40. else
  41. echo ----------------------------------------
  42. echo Invalid choice...
  43. echo ----------------------------------------
  44. echo
  45. fi
  46. # This portion will run the calculator program infinitely unless
  47. # the exit option 5 is given as input by the user
  48. elif [[ $# -eq 0 ]] ; then
  49. while true
  50. do
  51. # Offer choices
  52. echo 1. Addition
  53. echo 2. Subtraction
  54. echo 3. Multiplication
  55. echo 4. Division
  56. echo 5. Exit
  57. echo Enter your choice:
  58. read choice
  59. # get operands and start computing based on the user's choice
  60. if [[ $choice -eq 1 ]] ; then
  61. echo Enter operand1 value:
  62. read operand1
  63. echo Enter operand2 value:
  64. read operand2
  65. echo ----------------------------------------
  66. echo Addition of $operand1 and $operand2 is $((operand1+operand2))
  67. echo ----------------------------------------
  68. echo
  69. elif [[ $choice -eq 2 ]] ; then
  70. echo Enter operand1 value:
  71. read operand1
  72. echo Enter operand2 value:
  73. read operand2
  74. echo ----------------------------------------
  75. echo Subtraction of $operand1 and $operand2 is $((operand1-operand2))
  76. echo ----------------------------------------
  77. echo
  78. elif [[ $choice -eq 3 ]] ; then
  79. echo Enter operand1 value:
  80. read operand1
  81. echo Enter operand2 value:
  82. read operand2
  83. echo ----------------------------------------
  84. echo Multiplication of $operand1 and $operand2 is $((operand1*operand2))
  85. echo ----------------------------------------
  86. echo
  87. elif [[ $choice -eq 4 ]] ; then
  88. echo Enter operand1 value:
  89. read operand1
  90. echo Enter operand2 value:
  91. read operand2
  92. echo ----------------------------------------
  93. echo Division of $operand1 and $operand2 is $((operand1/operand2))
  94. echo ----------------------------------------
  95. echo
  96. elif [[ $choice -eq 5 ]] ; then
  97. exit
  98. else
  99. echo ----------------------------------------
  100. echo Invalid choice.. Please try again
  101. echo ----------------------------------------
  102. echo
  103. fi
  104. done
  105. else
  106. echo ----------------------------------------
  107. echo You either passed too many parameters or too less
  108. echo than the optimum requirement.
  109. echo
  110. echo This program accepts a maximum of 2 arguments or no
  111. echo argument at all in order to run successfully.
  112. echo ----------------------------------------
  113. 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 🙂