Perhitungan Matematika dalam Bash

Perhitungan Matematika dalam Bash

Bash adalah bahasa skrip yang kuat yang dapat digunakan untuk berbagai tugas, termasuk perhitungan matematika. Namun, bekerja dengan angka dalam pesta bisa menjadi tantangan, terutama saat berhadapan dengan aritmatika titik mengambang, jumlah besar, dan perhitungan yang kompleks.

Dalam artikel ini, kami akan mengeksplorasi beberapa tips dan trik untuk perhitungan matematika di Bash.

Gunakan alat yang tepat untuk pekerjaan itu

Bash memiliki beberapa alat bawaan untuk melakukan perhitungan matematika, seperti (()) Dan $ (()) Operator, The expr perintah, dan bc memerintah. Setiap alat memiliki kekuatan dan kelemahannya, dan memilih yang tepat dapat membuat perbedaan besar dalam hal kinerja dan akurasi.

  • Itu '(())' Dan '$ (())' Operator adalah alat yang paling umum digunakan untuk melakukan aritmatika integer dalam bash. Mereka mendukung semua operasi aritmatika dasar, serta operasi dan perbandingan bitwise. Namun, mereka tidak mendukung aritmatika titik mengambang, dan ketepatannya terbatas pada ukuran jenis integer pada sistem Anda.
  • Itu 'Expr' Perintah adalah alat yang lebih kuat yang mendukung aritmatika titik mengambang, serta operasi string dan ekspresi reguler. Namun, lebih lambat dari (()) dan $ (()) operator, dan outputnya harus ditangkap menggunakan substitusi perintah.
  • Itu 'BC Perintah adalah alat yang paling serbaguna untuk melakukan perhitungan matematika dalam bash. Ini mendukung aritmatika presisi presisi sewenang-wenang, bilangan kompleks, dan fungsi canggih, seperti fungsi trigonometri dan logaritmik. Namun, itu membutuhkan proses terpisah untuk diluncurkan, yang dapat memperlambat skrip Anda.

Operasi Aritmatika

Bash menyediakan operasi aritmatika dasar seperti penambahan, pengurangan, perkalian, dan divisi. Operasi ini dapat dilakukan dengan menggunakan sintaks ekspansi aritmatika $ ((ekspresi)). Misalnya, perintah berikut akan menambahkan 3 dan 4:

Echo $ ((3 + 4))
1Echo $ ((3 + 4))

Ini akan menghasilkan 7.

Demikian pula, kita dapat melakukan operasi aritmatika lainnya seperti pengurangan, perkalian, dan divisi:

echo $ ((6 - 2)) echo $ ((4 * 5)) echo $ ((12/3)))
123echo $ ((6 - 2)) echo $ ((4 * 5)) echo $ ((12/3)))

Ini akan menghasilkan 4, 20, Dan 4, masing -masing.

Variabel dan operasi matematika

Kami juga dapat menggunakan variabel dalam perhitungan matematika kami. Misalnya:

a = 5 b = 2 gema $ ((a + b))
123a = 5b = 2echo $ ((a + b))

Ini akan menghasilkan 7.

Kami juga dapat melakukan operasi pada variabel itu sendiri, seperti ini:

a = 5 b = 2 gema $ ((a *= b))
123a = 5b = 2echo $ ((a *= b))

Ini akan menghasilkan 10. Variabel A sekarang memiliki nilai 10 setelah dikalikan dengan b.

Operasi matematika poin floating

Bash tidak mendukung operasi matematika floating-point, tetapi kami dapat menggunakan alat eksternal seperti BC dan AWK untuk melakukan perhitungan ini.

'SM' adalah kalkulator baris perintah yang mendukung presisi sewenang-wenang. Kita dapat menggunakannya untuk melakukan perhitungan titik mengambang seperti ini:

echo "skala = 2; 10/3" | bc
1echo "skala = 2; 10/3" | bc

Ini akan menghasilkan 3.33.

AWK adalah alat pemrosesan teks yang kuat yang juga mendukung operasi matematika. Kita dapat menggunakannya untuk melakukan perhitungan titik mengambang seperti ini:

Echo "10.5 2.5 "| awk 'printf"%.2f \ n ", $ 1 / $ 2 '
1Echo "10.5 2.5 "| awk 'printf"%.2f \ n ", $ 1 / $ 2 '

Ini akan menghasilkan 4.20.

Gunakan fungsi untuk menyederhanakan perhitungan kompleks

Saat bekerja dengan perhitungan kompleks dalam bash, seringkali membantu untuk memecahnya menjadi fungsi yang lebih kecil dan lebih mudah dikelola. Fungsi memungkinkan Anda untuk merangkum blok kode dan menggunakannya kembali beberapa kali di seluruh skrip Anda, yang dapat membuat kode Anda lebih modular dan lebih mudah dipahami.

Misalnya, katakanlah Anda ingin menghitung area lingkaran, mengingat jari -jarinya. Anda dapat membuat fungsi yang disebut “Calculate_area” Itu mengambil jari -jari sebagai argumen dan mengembalikan area:

#!/bin/bash pi = 3.14159 CALTULATE_AREA () Radius lokal = $ 1 Area lokal = $ (echo "$ pi * $ radius * $ radius" | bc) echo $ area radius = 5 area = $ (calculate_area $ radius) echo "area lingkaran Dengan Radius $ Radius adalah $ Area "
12345678910111213#!/bin/bash pi = 3.14159 calculate_area() local radius=$1 local area=$(echo "$PI * $radius * $radius" | bc) echo $area radius=5area=$(calculate_area $radius)echo "The area of ​​a circle with Radius $ Radius adalah $ Area "

Script ini mendefinisikan fungsi yang disebut calculate_area yang mengambil jari -jari sebagai argumen, menghitung area menggunakan rumus A = πr^2, dan mengembalikan hasilnya. Bagian utama dari skrip kemudian memanggil fungsi dengan jari -jari 5, menangkap output menggunakan substitusi perintah, dan mencetak hasilnya ke layar.

Gunakan pernyataan bersyarat untuk penanganan kesalahan

Saat melakukan perhitungan matematika dalam bash, penting untuk menangani kesalahan dengan anggun, terutama saat berhadapan dengan input pengguna atau sumber data eksternal. Salah satu cara untuk melakukan ini adalah dengan menggunakan pernyataan bersyarat untuk memeriksa kesalahan dan memberikan umpan balik kepada pengguna.

Misalnya, katakanlah Anda ingin menghitung faktorial angka, diberikan sebagai input pengguna. Anda dapat membuat skrip yang menggunakan loop untuk menghitung faktorial, dan pernyataan bersyarat untuk memeriksa kesalahan:

#!/bin/bash baca -p "Masukkan nomor:" num jika ! [["$ num" = ~ ^[0-9]+$]]; Kemudian echo "kesalahan: '$ num' bukan integer valid" keluar 1 fi factorial = 1 untuk ((i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i") done echo "The factorial of $num is $factorial"
123456789101112131415#!/bin/bash baca -p "Masukkan nomor:" num jika ! [["$ num" = ~ ^[0-9]+$]]; Kemudian echo "kesalahan: '$ num' bukan integer valid" keluar 1fi factorial = 1for ((i = 1; i<=$num; i++)); do factorial=$(expr "$factorial * $i")done echo "The factorial of $num is $factorial"

Script ini membaca nomor dari pengguna menggunakan perintah baca, dan menggunakan pernyataan bersyarat untuk memeriksa apakah input adalah integer yang valid. Jika input tidak valid, skrip mencetak pesan kesalahan dan keluar dengan kode status non-nol. Jika input valid, skrip menggunakan loop untuk menghitung faktorial, dan mencetak hasilnya ke layar.

Kesimpulan

Dalam artikel ini, kami mengeksplorasi cara melakukan perhitungan matematika dalam bash. Kami belajar cara menggunakan operasi aritmatika dasar, variabel, dan alat eksternal seperti bc Dan AWK untuk melakukan operasi matematika di bash. Dengan alat -alat ini yang kami miliki, kami dapat melakukan berbagai perhitungan matematika dalam bash, dari aritmatika dasar hingga operasi yang lebih kompleks.