Bashda arifmetika

Bash skriptiga hisoblarni qo'shish

Bash scripting tili bo'lsa-da, u umumiy maqsadli dasturlash tilining barcha imkoniyatlariga ega. Bu arifmetik funktsiyalarni o'z ichiga oladi. Bir ifoda arifmetik bahosini uyg'otish uchun foydalanadigan qator sintaksis variantlari mavjud. Ehtimol, eng o'qiladigan buyruq buyruq bo'lsin . Masalan

m = 4 * 1024 "

4 marta 1024 hisoblab chiqadi va natijani "m" o'zgaruvchiga belgilaydi.

Siz echo bayonotini qo'shib, natijani chop etishingiz mumkin:

m = 4 * 1024 "echo $ m bo'lsin

Siz buni quyidagi kodni kiritib, buyruq satridan tekshirishingiz mumkin:

"m = 4 * 1024" ga ruxsat bering; echo $ m

Bundan tashqari, Bash buyruqlar o'z ichiga olgan faylni yaratishingiz mumkin, bu holda kodni bajarish kerak bo'lgan dasturni ko'rsatadigan faylning yuqori qismiga satr qo'shishingiz kerak bo'ladi. Masalan:

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

Bash bajaruvchisi / bin / bash-da joylashganligini taxmin qilamiz. Bundan tashqari, sizning buyruq fayli dosyaning ruxsatini sozlashingiz kerak. Buyruq fayli nomini skript1.sh deb bilsak , faylni buyruq bilan bajarish uchun ruxsatlarni o'rnatishingiz mumkin:

chmod 777 skript1.sh

Shundan keyin uni buyruq bilan bajarishingiz mumkin:

./script1.sh

Mavjud arifmetik operatsiyalar Java va C kabi standart dasturlash tillariga o'xshash. Yuqorida tasvirlanganidek, ayirishdan tashqari siz qo'shimcha foydalanasiz:

m = a + 7 "

yoki olib tashlash:

m = a - 7 "ga ruxsat bering

yoki bo'linish:

m = a / 2 "ga ruxsat beraylik

yoki modulo (qolgan qismini tamsayt bo'linishidan keyin):

"m = a% 100"

Agar operatsiya natijaga tayinlangan bir xil o'zgaruvchiga qo'llanilsa, standart arifmetik stenografiya tayinlash operatorlaridan ham foydalanish mumkin. Misol uchun, qo'shimcha qilish uchun quyidagilar mavjud:

"m + = 15"

bu "m = m + 15" ga teng. Chiqib olish uchun biz quyidagilarni bajaramiz:

m - = 3 "

bu "m = m - 3" ga teng. Bo'limda quyidagilar mavjud:

"m / = 5"

bu "m = m / 5" ga teng. Va modul uchun quyidagilar mavjud:

"m% = 10"

bu "m = m% 10" ga teng.

Bundan tashqari, o'sish va kamaytirish operatorlaridan foydalanishingiz mumkin:

"m ++" ga ruxsat beraylik

"m = m + 1" ga teng. Va

"m--" ga ruxsat bering

"m = m - 1" ga teng.

Va keyin uchta "savol mark-nuqta-operator" operatori mavjud bo'lib, u shartning haqiqiy yoki noto'g'ri ekanligiga qarab ikki qiymatdan birini qaytaradi. Masalan

q = (m <9) 0: 1 "

Ushbu topshiriqning o'ng tomoni "m" ning o'zgarmaydigan qiymati 9 ga teng bo'lsa, "0" qiymatiga teng. Aks holda, u 1ga baholanadi. Bu "k" o'zgaruvchining "0" bo'lsa, "m" qiymati kam bo'lsa Aksincha, 9 va "1" bo'lishi kerak.

Savol-nuqta belgisi operatorining umumiy shakli quyidagicha:

ahvoli? qiymat-if-true: value-if-false

Bashda suzuvchi nuqtali arifmetika

Let operatori faqat to'liq raqamli arifmetik uchun ishlaydi. Quyidagi misolda ko'rsatilganidek, suzuvchi nuqta arifmetikasi uchun GNU bc kalkulyatorini ishlatishingiz mumkin:

echo "32.0 + 1.4" | bc

"Trubani" operatori "|" haqiqiy sonni qaytaradigan bc kalkulyatoriga arifmetik ifodani "32.0 + 1.4" dan uzatadi. Eko buyrug'i natijani standart chiqishga chiqaradi.

Aritmetik uchun muqobil sintaksis

Ushbu misolda keltirilgan arifmetik ifodani baholash uchun backticks (orqa yagona tirnoq) foydalanish mumkin:

echo `$ m + 18 'tugmachasini bosing

Bu "m" o'zgarmaydigan qiymatiga 18 qo'shiladi va keyin natija chiqaradi.

Hisoblagich qiymatini o'zgaruvchiga tayinlash uchun uning atrofidagi bo'shliqlarsiz teng belgini ishlatishingiz mumkin:

m = '$ m + 18' tugmachasini bosing

Arifmetik ifodalarni baholashning yana bir yo'li - ikkilamchi parantezni qo'llash. Masalan:

((m * = 4))

Bu "m" o'zgaruvchining qiymatini to'rt barobarga oshiradi.

Arshmetik baho bilan bir qatorda Bash qobig'i boshqa dasturiy tuzilmalar, masalan, for-loops , while loops , conditionals , and functions and subroutines bilan ta'minlaydi .