Arithmetic in Bash

Cara Tambah Pengiraan ke Bash Script

Walaupun Bash adalah bahasa skrip, ia mempunyai hampir semua kemampuan bahasa pengaturcaraan tujuan umum. Ini termasuk fungsi aritmetik. Terdapat beberapa pilihan sintaks yang anda boleh gunakan untuk membangkitkan penilaian aritmetik ungkapan. Mungkin yang paling mudah dibaca adalah arahan yang dibiarkan . Sebagai contoh

biarkan "m = 4 * 1024"

akan mengira 4 kali 1024 dan menyerahkan hasilnya kepada pembolehubah "m".

Anda boleh mencetak hasilnya dengan menambah pernyataan echo :

mari "m = 4 * 1024" echo $ m

Anda boleh menguji ini dari baris arahan dengan memasukkan kod berikut:

biarkan "m = 4 * 1024"; echo $ m

Anda juga boleh membuat fail yang mengandungi arahan Bash, dalam hal ini anda harus menambahkan garis di bagian atas file yang menentukan program yang seharusnya menjalankan kode tersebut. Sebagai contoh:

#! / bin / bash mari "m = 4 * 1024" echo $ m

dengan asumsi Bash executable terletak di / bin / bash . Anda juga perlu menetapkan keizinan fail skrip anda supaya dapat dilaksanakan. Dengan mengandaikan nama fail skrip ialah script1.sh , anda boleh menetapkan keizinan untuk membuat fail boleh laku dengan perintah:

chmod 777 script1.sh

Selepas itu anda boleh melaksanakannya dengan arahan:

./script1.sh

Operasi aritmetik yang ada adalah serupa dengan bahasa pengaturcaraan standard seperti Java dan C. Selain pendaraban, seperti digambarkan di atas, anda menggunakan penambahan:

biarkan "m = a + 7"

atau penolakan:

biarkan "m = a - 7"

atau pembahagian:

biarkan "m = a / 2"

atau modulo (baki selepas bahagian integer):

biarkan "m = a% 100"

Apabila operasi diterapkan kepada pembolehubah yang sama dengan keputusan yang ditetapkan, anda boleh menggunakan pengendali penandaan jangka pendek aritmetik piawai, yang juga disebut sebagai pengendali majikan kompaun. Sebagai contoh, untuk penambahan, kami mempunyai:

biarkan "m + = 15"

yang bersamaan dengan "m = m + 15". Untuk penolakan kami ada:

mari "m - = 3"

yang bersamaan dengan "m = m - 3". Untuk bahagian kita ada:

mari "m / = 5"

yang bersamaan dengan "m = m / 5". Dan untuk modulo, kami mempunyai:

mari "m% = 10"

yang bersamaan dengan "m = m% 10".

Di samping itu, anda boleh menggunakan pengendali kenaikan dan penurunan :

biarkan "m ++"

bersamaan dengan "m = m + 1". Dan

biarkan "m--"

bersamaan dengan "m = m - 1".

Dan kemudian terdapat operator "tanda tanda-colon" ternary, yang mengembalikan salah satu daripada dua nilai bergantung kepada sama ada keadaan yang dinyatakan adalah benar atau palsu. Sebagai contoh

mari "k = (m <9)? 0: 1"

Sisi kanan pernyataan tugasan ini mengevaluasi kepada "0" jika variabel "m" kurang dari 9. Jika tidak, ia mengevaluasi ke 1. Ini bermakna pemboleh ubah "k" diberikan "0" jika "m" kurang daripada 9 dan "1" sebaliknya.

Bentuk umum operator mark-colon soalan adalah:

keadaan? nilai-jika-benar: nilai-jika-palsu

Aritmetik Terapung di Bash

Operator biarkan hanya berfungsi untuk aritmetik integer. Untuk aritmetik terapung yang boleh anda gunakan contohnya kalkulator GNU bc seperti digambarkan dalam contoh ini:

echo "32.0 + 1.4" | bc

Operator "paip" "|" lulus ungkapan aritmetik "32.0 + 1.4" ke kalkulator bc, yang mengembalikan nombor sebenar. Arahan echo mencetak hasil kepada output standard.

Sintaks Alternatif untuk Arithmetic

Backticks (petikan tunggal belakang) boleh digunakan untuk menilai ungkapan aritmetik seperti dalam contoh ini:

echo `expr $ m + 18`

Ini akan menambahkan 18 kepada nilai pembolehubah "m" dan kemudian mencetak hasilnya.

Untuk menetapkan nilai pengiraan kepada pemboleh ubah anda boleh menggunakan tanda yang sama tanpa ruang di sekelilingnya:

m = `expr $ m + 18`

Satu lagi cara untuk menilai ekspresi aritmetik adalah dengan menggunakan tanda kurung berganda. Sebagai contoh:

((m * = 4))

Ini akan membangkitkan nilai pemboleh ubah "m".

Selain daripada penilaian aritmetik, shell Bash menyediakan pembinaan pengaturcaraan lain, seperti for-loops , sementara-gelung , syarat , dan fungsi dan subrutin .