Cara Melakukan Operasi Aritmatika Di Bash

Dalam artikel ini, kita akan fokus pada bagaimana melakukan operasi matematika dalam skrip bash. Kita dapat melakukan operasi aritmatika di Bash menggunakan alat bawaan dan eksternal. Pertama, kita akan belajar tentang built-in tools.
Catatan: Tidak seperti bahasa pemrograman lain, operasi aritmatika bash tidak langsung (setidaknya untuk saya). Ada beberapa bash built-in dan program eksternal untuk melakukan operasi yang sama. Jika Anda ingin melakukan perhitungan matematis yang kompleks, maka shell bukanlah cara yang disarankan untuk melakukannya.
Contents
Lakukan Operasi Matematika di Bash Menggunakan Perintah “biarkan” TerpasangLakukan Operasi Aritmatika Di Bash Menggunakan Kurung Ganda TerpasangLakukan Operasi Aritmatika Di Bash Menggunakan Utilitas EksprLakukan Operasi Aritmatika Bash Menggunakan Utilitas bcLakukan Operasi Matematika Dengan AWKKesimpulanLakukan Operasi Matematika Di Bash Menggunakan Perintah “biarkan” Bawaan

Menggunakan perintah let, Anda dapat melakukan operasi aritmatika, inkremental, bitwise, dan kondisional. Kelemahan dari perintah let adalah tidak dapat menangani nilai floating point.

Perintah let di bash adalah perintah bawaan. Anda dapat memverifikasi bahwa dengan menjalankan perintah berikut di terminal.

$ ketik -a letlet adalah shell builtin

Jalankan perintah berikut untuk mendapatkan bagian bantuan di mana Anda dapat menemukan daftar operator yang didukung oleh perintah ‘let’.

$ let -help

Contoh output:

Ada beberapa poin penting yang perlu diperhatikan saat bekerja dengan perintah let.
Output dari setiap operasi harus ditetapkan ke variabel dan kemudian dicetak. Perintah ‘let’ tidak akan memungkinkan Anda untuk mencetak output secara langsung. Tidak ada ruang yang diizinkan antara operator dan operand.
Buat skrip shell, salin dan tempel kode contoh di bawah ini dan coba jalankan skrip. Dalam kode yang diberikan di bawah ini, saya melakukan operasi aritmatika. Seperti yang sudah disebutkan, output dari ekspresi harus ditetapkan ke variabel sebelum mencetaknya.

#!/usr/bin/env bash let NUMBER1=10 let NUMBER2=3 # Addition => + operator let ADD=$NUMBER1+$ NUMBER2 echo "Penambahan dua bilangan : ${ADD}" # Pengurangan => - operator let SUB=$NUMBER1-$NUMBER2 echo "Pengurangan dua bilangan : ${SUB}" # Multiply => * operator let MUL=$NUMBER1 *$NUMBER2 echo "Perkalian dua bilangan : ${MUL}" # Divide => / operator let DIV=$NUMBER1/$NUMBER2 echo "Pembagian dua bilangan : ${DIV}" # Sisa => % operator let REM=$ NUMBER1%$NUMBER2 echo "Sisa dua bilangan : ${REM}" # Eksponen => ** operator let EXPO=$NUMBER1**$NUMBER2 echo "Eksponen dua bilangan : ${EXPO}"

Anda juga dapat melakukan kenaikan pos dan operasi pasca pengurangan juga. Operasi ini akan banyak digunakan ketika kita menjalankan loop dalam skrip.
Operasi post increment akan meningkatkan nilai variabel menjadi VARIABLE + 1.Operasi pra-kenaikan akan meningkatkan nilai variabel menjadi VARIABLE – 1.

let variable++let variable --

Anda juga dapat melakukan operasi perbandingan lain seperti memeriksa kesetaraan, ketidaksetaraan, lebih besar dari, kurang dari, dll. Saya sangat menyarankan untuk tidak menggunakan perintah let untuk melakukan operasi perbandingan apa pun karena ada cara yang lebih baik untuk menanganinya.
Lakukan Operasi Aritmatika Dalam Bash Menggunakan Kurung Ganda Terpasang

Sebagai alternatif dari perintah let, Anda dapat menggunakan metode kurung ganda di mana Anda harus menempatkan operator dan operan di dalam kurung ganda.

Keuntungan dari metode ini dibandingkan perintah let adalah bahwa hasilnya dapat langsung dicetak atau disimpan dalam variabel dan Anda dapat menambahkan spasi antara operator dan operan. Mirip dengan perintah let, Anda tidak dapat melakukan operasi floating point.

Contoh yang diberikan di bawah ini hampir sama dengan contoh yang ditunjukkan pada perintah let. Yang harus Anda lakukan adalah meletakkan ekspresi Anda di dalam tanda kurung ganda. Tidak perlu menambahkan variabel dengan simbol $ di dalam tanda kurung ganda. Berikan saja nama variabel dan nilainya akan diinterpretasikan.

Dari gambar di bawah, jika Anda dapat melihat baris 12 dan 13, Anda akan melihat perbedaan dalam cara penanganan ekspresi. Apa pun di dalam tanda kurung akan dievaluasi terlebih dahulu dan hasilnya akan dihitung terhadap operan lainnya. Anda dapat melihat perilaku ini di output “Multiply” dan “Multiply1”.

Serupa dengan perintah let, Anda juga dapat melakukan operasi penambahan dan pengurangan pos.

((NUMBER2++)((NUMBER1--))

Anda juga dapat melakukan shorthand operation.

(( NUMBER2 = NUMBER2 + 10 ))(( NUMBER2 += 10 )) # Shorthand

Melakukan Operasi Aritmatika Di Bash Menggunakan Expr Utility

Di bagian sebelumnya, kita telah melihat tentang fungsionalitas bawaan dan di bagian ini, kita akan mengambil lihat “expr”, yang merupakan program eksternal.

Tidak hanya operasi matematika, utilitas expr juga dapat melakukan operasi pada string seperti mencari indeks karakter, panjang string, substring dll.

Sebelum menggunakan program expr, buka melalui halaman manual yang akan memberi Anda sedikit pemahaman tentang utilitas ini.

$ man expr$ expr -help

Berikut adalah sintaks untuk perintah expr:

$ expr

Operasi aritmatika dasar sama dengan yang kita miliki terlihat pada bagian-bagian sebelumnya. Satu-satunya perbedaan di sini adalah ketika menggunakan * untuk melakukan operasi perkalian Anda harus menghindarinya dengan “” jika tidak maka akan menimbulkan error.

expr 10 + 3 # Additionexpr 10 - 3 # Subtractionexpr 10 * 3 # Multiplyexpr 10 / 3 # Divideexpr 10 % 3 # Remainder

Sampai sekarang kita telah melihat sekitar tiga cara berbeda untuk melakukan operasi aritmatika dasar dan operasi inkremental. Dibandingkan dengan let dan expr, pendekatan yang disarankan adalah menggunakan tanda kurung ganda.

Kesamaan dengan ketiga pendekatan ini adalah bahwa mereka tidak dapat menangani operasi floating point. Anda harus mengandalkan utilitas eksternal seperti awk dan bc untuk melakukan operasi floating point.
Melakukan Operasi Aritmatika Bash Menggunakan Utilitas bc

Utilitas bc adalah program eksternal yang dapat digunakan untuk melakukan operasi matematika dasar maupun kompleks. Operasi titik mengambang juga didukung oleh utilitas bc.

Anda dapat melihat jenis utilitas bc dan halaman manualnya menggunakan perintah berikut:

$ type -a bc$ man bc

Contoh berikut menunjukkan operasi matematika sederhana dengan bilangan bulat dan nilai mengambang.

 # Tambahkan $ echo "10 + 100" | bc => 110 $ echo "10.15 + 11.20" | bc 21.35 # Kurangi $ echo "100 - 25" | bc => 75 $ echo "100 - 25.5" | bc => 74.5 # Kalikan $ echo "10 * 5" | bc => 50 $ echo "10.10 * 4" | bc => 40.40

Saat melakukan operasi pembagian, Anda harus mengatur nilai skala agar hasilnya dicetak dalam nilai floating point jika tidak, hasilnya akan menjadi nilai integer. Nilai yang ditetapkan dalam skala menentukan berapa banyak digit yang akan dicetak setelah desimal.

# tanpa skala echo "10.10 / 4" | bc => 2

# dengan scaleecho “scale=2;10.10 / 4” | bc=> 2.52
Anda juga dapat melakukan operasi eksponen.

$ echo "2.2^4" | bc=> 23.4

Perform Mathematical Operations With AWK

Awk menawarkan lebih banyak fungsionalitas untuk melakukan perhitungan matematis dibandingkan dengan utilitas lain. Ini memiliki beberapa fungsi bawaan yang akan membuat hidup kita mudah.

Di bawah ini adalah sintaks untuk melakukan perhitungan matematika.

$ awk "BEGIN {print expression }"

Untuk melakukan perkalian sederhana, jalankan:

$ awk "BEGIN {print 23 * 4.5 }"=> 103.5

Dari nilai floating point, Anda bisa mendapatkan nilai integer saja menggunakan fungsi int.

$ awk "BEGIN{print int(10.111) }"=> 10

Anda juga dapat menghitung akar kuadrat dari a diberikan nomor menggunakan fungsi sqrt.

$ awk "BEGIN{print sqrt(10) }"=> 3.16228

Terutama ketika bekerja dengan file CSV saya sering berakhir dalam situasi untuk menghitung rata-rata kolom. Anda cukup menghitung rata-rata kolom dengan kode berikut.

Karena ini adalah file CSV, saya menyetel pemisah bidang ke (-F “,”). Di sini seluruh kolom kedua pertama kali ditambahkan dan dibagi dengan NR(jumlah catatan).

$ awk -F "," '{sum+=$2} END { print "nilai rata-rata dari kolom 2 = ",sum/NR}' data.csv

Kami akan memposting panduan terperinci tentang awk di masa mendatang.
Kesimpulan

Dalam artikel ini, saya telah menunjukkan kepada Anda berbagai metode untuk melakukan operasi matematika sederhana di Bash. Jika Anda melakukan operasi aritmatika yang sangat sederhana, tetap menggunakan pendekatan braket ganda dan untuk operasi yang lebih kompleks gunakan awk.