Pengiraan Matematik di Bash
- 1098
- 321
- Chris Little I
Bash adalah bahasa skrip yang kuat yang boleh digunakan untuk pelbagai tugas, termasuk pengiraan matematik. Walau bagaimanapun, bekerja dengan nombor dalam bash boleh mencabar, terutamanya ketika berurusan dengan aritmetik terapung, bilangan besar, dan pengiraan yang kompleks.
Dalam artikel ini, kami akan meneroka beberapa petua dan cara untuk pengiraan matematik di Bash.
Gunakan alat yang sesuai untuk pekerjaan
Bash mempunyai beberapa alat terbina dalam untuk melakukan pengiraan matematik, seperti (())
dan $ (())
pengendali, yang expr perintah, dan BC perintah. Setiap alat mempunyai kekuatan dan kelemahannya, dan memilih yang betul dapat membuat perbezaan besar dari segi prestasi dan ketepatan.
- The
'(())'
dan'$ (())'
Pengendali adalah alat yang paling biasa digunakan untuk melaksanakan aritmetik integer di bash. Mereka menyokong semua operasi aritmetik asas, serta operasi dan perbandingan bitwise. Walau bagaimanapun, mereka tidak menyokong aritmetik terapung, dan ketepatannya terhad kepada saiz jenis integer pada sistem anda. - The
'expr'
Perintah adalah alat yang lebih kuat yang menyokong aritmetik terapung, serta operasi rentetan dan ekspresi biasa. Walau bagaimanapun, ia lebih perlahan daripada pengendali (()) dan $ (()), dan outputnya mesti ditangkap menggunakan penggantian arahan. - The
'BC
Perintah adalah alat yang paling serba boleh untuk melakukan pengiraan matematik di bash. Ia menyokong aritmetik ketepatan, nombor kompleks, dan fungsi lanjutan, seperti fungsi trigonometri dan logaritma. Walau bagaimanapun, ia memerlukan proses yang berasingan untuk dilancarkan, yang dapat melambatkan skrip anda.
Operasi aritmetik
Bash menyediakan operasi aritmetik asas seperti penambahan, penolakan, pendaraban, dan pembahagian. Operasi ini boleh dilakukan menggunakan sintaks pengembangan aritmetik $ ((ungkapan)))
. Sebagai contoh, arahan berikut akan menambah 3 dan 4:
1 | echo $ ((3 + 4)) |
Ini akan dikeluarkan 7
.
Begitu juga, kita boleh melakukan operasi aritmetik lain seperti penolakan, pendaraban, dan pembahagian:
echo $ ((6 - 2)) echo $ ((4 * 5)) echo $ ((12/3))123 | echo $ ((6 - 2)) echo $ ((4 * 5)) echo $ ((12/3)) |
Ini akan dikeluarkan 4
, 20
, dan 4
, masing -masing.
Pembolehubah dan operasi matematik
Kami juga boleh menggunakan pembolehubah dalam pengiraan matematik kami. Sebagai contoh:
a = 5 b = 2 echo $ ((a + b))123 | a = 5b = 2echo $ ((a + b)) |
Ini akan dikeluarkan 7
.
Kita juga boleh melakukan operasi pada pembolehubah sendiri, seperti ini:
a = 5 b = 2 echo $ ((a *= b))123 | a = 5b = 2echo $ ((a *= b)) |
Ini akan dikeluarkan 10
. Pembolehubah A sekarang mempunyai nilai 10 setelah didarabkan oleh b.
Operasi matematik terapung
Bash tidak menyokong operasi matematik terapung, tetapi kita boleh menggunakan alat luaran seperti BC dan AWK untuk melakukan pengiraan ini.
'BC' adalah kalkulator baris arahan yang menyokong ketepatan sewenang-wenang. Kita boleh menggunakannya untuk melakukan pengiraan titik terapung seperti ini:
echo "skala = 2; 10/3" | BC1 | echo "skala = 2; 10/3" | BC |
Ini akan dikeluarkan 3.33
.
Awk adalah alat pemprosesan teks yang kuat yang juga menyokong operasi matematik. Kita boleh menggunakannya untuk melakukan pengiraan titik terapung seperti ini:
echo "10.5 2.5 "| awk 'printf"%.2f \ n ", $ 1 / $ 2 '1 | echo "10.5 2.5 "| awk 'printf"%.2f \ n ", $ 1 / $ 2 ' |
Ini akan dikeluarkan 4.20
.
Gunakan fungsi untuk memudahkan pengiraan kompleks
Semasa bekerja dengan pengiraan yang kompleks di bash, sering membantu untuk memecahkannya menjadi fungsi yang lebih kecil, lebih mudah diurus. Fungsi membolehkan anda merangkum blok kod dan menggunakannya semula beberapa kali sepanjang skrip anda, yang boleh menjadikan kod anda lebih modular dan lebih mudah difahami.
Contohnya, katakan anda ingin mengira kawasan bulatan, memandangkan jejarnya. Anda boleh membuat fungsi yang dipanggil "Kirakan_area" Itu mengambil jejari sebagai hujah dan mengembalikan kawasan tersebut:
#!/bin/bash pi = 3.14159 CALLULATE_AREA () RADIUS Tempatan = $ 1 kawasan tempatan = $ (echo "$ pi * $ radius * $ radius" | bc) echo $ area radius = 5 area = $ (CALLULATE_AREA $ RADIUS) echo " dengan radius $ radius adalah $ kawasan "12345678910111213 | #!/bin/bash pi = 3.14159 CALLULATE_AREA () RADIUS LOKAL = $ 1 KAWASAN TEMPAT RADIUS $ RADIUS ADALAH $ AREA " |
Skrip ini mentakrifkan fungsi yang dipanggil Calculate_area yang mengambil jejari sebagai hujah, mengira kawasan menggunakan formula A = πr^2
, dan mengembalikan hasilnya. Bahagian utama skrip kemudian memanggil fungsi dengan jejari 5, menangkap output menggunakan penggantian arahan, dan mencetak hasilnya ke skrin.
Gunakan pernyataan bersyarat untuk pengendalian ralat
Semasa melakukan pengiraan matematik di bash, penting untuk mengendalikan kesilapan dengan anggun, terutamanya apabila berurusan dengan input pengguna atau sumber data luaran. Salah satu cara untuk melakukan ini adalah dengan menggunakan pernyataan bersyarat untuk memeriksa kesilapan dan memberi maklum balas kepada pengguna.
Contohnya, katakan anda ingin mengira faktorial nombor, diberikan sebagai input pengguna. Anda boleh membuat skrip yang menggunakan gelung untuk mengira faktorial, dan pernyataan bersyarat untuk memeriksa kesilapan:
#!/bin/bash baca -p "Masukkan nombor:" Num jika ! [["$ num" = ~ ^[0-9]+$]]; Kemudian echo "ralat: '$ num' bukan integer yang sah" Keluar 1 Fi factorial = 1 untuk ((i = 1;<=$num; i++)); do factorial=$(expr "$factorial * $i") done echo "The factorial of $num is $factorial"123456789101112131415 | #!/bin/bash baca -p "Masukkan nombor:" Num jika ! [["$ num" = ~ ^[0-9]+$]]; Kemudian echo "ralat: '$ num' bukan integer yang sah" keluar 1fi factorial = 1for ((i = 1;<=$num; i++)); do factorial=$(expr "$factorial * $i")done echo "The factorial of $num is $factorial" |
Skrip ini membaca nombor dari pengguna menggunakan arahan baca, dan menggunakan pernyataan bersyarat untuk memeriksa sama ada input adalah integer yang sah. Sekiranya input tidak sah, skrip mencetak mesej ralat dan keluar dengan kod status bukan sifar. Sekiranya input sah, skrip menggunakan gelung untuk mengira faktorial, dan mencetak hasilnya ke skrin.
Kesimpulan
Dalam artikel ini, kami meneroka cara melakukan pengiraan matematik di Bash. Kami belajar bagaimana menggunakan operasi aritmetik asas, pembolehubah, dan alat luaran seperti BC dan awk untuk melaksanakan operasi matematik di Bash. Dengan alat -alat ini, kami dapat melakukan pelbagai pengiraan matematik di bash, dari aritmetik asas hingga operasi yang lebih kompleks.
- « Pembolehubah khas bash ($ 0, $?, $#, [dilindungi e -mel]</a>, $$, $*)
- 15 Teknik JavaScript Lanjutan Setiap Pemaju Harus Tahu »