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'lsinSiz buni quyidagi kodni kiritib, buyruq satridan tekshirishingiz mumkin:
"m = 4 * 1024" ga ruxsat bering; echo $ mBundan 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 $ mBash 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.shShundan keyin uni buyruq bilan bajarishingiz mumkin:
./script1.shMavjud 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 beringyoki bo'linish:
m = a / 2 "ga ruxsat beraylikyoki 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-falseBashda 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 bosingBu "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 bosingArifmetik 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 .