Bashoratga qanday dalillar keltiriladi?

Buyruqlar, sintaksis va misollar

Buyruqning buyruq satridan chaqirilganda ko'rsatiladigan argumentlarni qabul qiladigan tarzda bosh skript yozishingiz mumkin. Ushbu usul skriptlar kirish parametrlari (mustaqil o'zgaruvchilar) qiymatiga qarab bir oz boshqacha funktsiyani bajarishi kerak bo'lganda foydalaniladi.

Misol uchun, sizda "stats.sh" deb nomlangan buyrug'i bo'lishi mumkin, u faylda muayyan operatsiyani amalga oshiradi. Agar siz ushbu skriptni ko'plab fayllarga ishlatmoqchi bo'lsangiz, fayl nomini argument sifatida qabul qiling, shunda siz barcha fayllarni qayta ishlashga shu skriptdan foydalanishingiz mumkin. Masalan, ishlov beriladigan fayl nomi "qo'shiqlar ro'yxati" bo'lsa, siz quyidagi buyruq satriga kirasiz:

sh stats.sh qo'shiqlari ro'yxati

Argumentlar $ 1, $ 2, $ 3 va hokazo. O'zgaruvchilar yordamida bir buyruq fayliga kiradi, bu erda $ 1 birinchi argumentga, $ 2 argumentga va yana shunga o'xshash. Bu quyidagi misolda keltirilgan:

FILE1 = $ 1 $ wc $ FILE1

O'qish uchun birinchi argumentning qiymatini ($ 1) tavsiflovchi nom bilan o'zgartiring va keyin bu o'zgaruvchiga ($ FILE1) so'zni hisoblash dasturini ( wc ) chaqiring.

Argumentlar soni o'zgargan bo'lsa, "$ @" o'zgaruvchisini ishlatishingiz mumkin, bu barcha kirish parametrlarining bir qatoridir. Boshqacha qilib aytganda, quyidagi misolda ko'rsatilgandek, har birini qayta ishlash uchun for-loopdan foydalanishingiz mumkin:

FILE1 uchun "$ @" da wc $ FILE1 bajarildi

Bu buyruqni buyruq qatoridagi argumentlar bilan qanday qilib chaqirish mumkinligi haqidagi misol:

sh stats.sh qo'shiqlar ro'yxati1 qo'shiqlar ro'yxati2 qo'shiqlar ro'yxati3

Argumentlar bo'shliqlar bo'lsa, uni bitta tirnoq bilan qo'shib qo'yishingiz kerak. Masalan:

sh stats.sh "songlist 1 '' qo'shiqlar ro'yxati 2 '' songlist 3 '

Ko'pincha, foydalanuvchi bayroqlar yordamida har qanday tartibda argumentlarga o'tishi mumkin bo'lgan bir skript yoziladi. Bayroqlar usuli bilan, ba'zi argumentlarni ixtiyoriy qilishingiz mumkin.

Sizda "foydalanuvchi nomi", "sana" va "mahsulot" kabi parametrlarga asoslangan ma'lumotlar bazasidan ma'lumotlarni oladi va ma'lum bir "formatda" hisobot tayyorlaydi. Endi siz buyruq faylini yozishni xohlaysiz, shunda buyruq faylini chaqirganingizda ushbu parametrlardan o'tishingiz mumkin. Bu shunday bo'lishi mumkin:

makereport -u jsmith -p noutbuklar -d 10-20-2011 -f pdf

Bash bu funksiyani "getopts" funktsiyasi bilan ta'minlaydi. Yuqoridagi misol uchun, siz quyida keltirilgan ma'lumotlardan foydalanishingiz mumkin:

Bu argumentlardan foydalanib, "getopts" funktsiyasidan va "u: d: p: f:" bu holatda "optstring" deb ataladigan vaqt-pastadir . While-loop argumentlarni o'tkazish uchun ishlatilishi mumkin bo'lgan bayroqlarni o'z ichiga olgan optstring orqali yuradi va ushbu bayroq uchun taqdim etilgan argument qiymatini "parametr" ga o'zgartiradi. Vazifalar bayonoti keyinchalik "parametr" o'zgaruvchining qiymatini barcha o'zgaruvchilar o'qilganidan so'ng foydalaniladigan global o'zgaruvchiga belgilaydi.

Optstring ichidagi nuqta, tegishli bayroqlar uchun qadriyatlar kerakligini anglatadi. Yuqoridagi misolda barcha bayroqlarga nuqta qo'yiladi: "u: d: p: f:". Bu shuni anglatadiki, barcha bayroqlar qiymatga muhtoj. Misol uchun, "d" va "f" bayroqlari qiymatga ega bo'lishi kutilmagan bo'lsa, optometr "u: dp: f" bo'ladi.

Masalan, ": u: d: p: f:" kabi optik chiziqning boshidagi nuqta mutlaqo boshqacha ma'noga ega. Bu optik chiziqda ko'rsatilmagan bayroqlarni boshqarishga imkon beradi. Bunday holda "parametr" o'zgaruvchining qiymati "?" va "OPTARG" qiymati kutilmagan bayroqqa o'rnatiladi. Xatoni foydalanuvchini xabardor qilish uchun tegishli xato xabari ko'rsatiladi.

Bayroq oldidan kelmagan dalillar gatopts tomonidan e'tiborsiz qoldiriladi. Buyruq fayliga chaqirilganda belgilashda belgilangan bayroqlar berilmasa, ushbu ishni sizning kodingizda maxsus bajarmasangiz, hech narsa bo'lmaydi. Getops bilan ishlov berilmagan har qanday argumentlar muntazam ravishda $ 1, $ 2 va hokazo o'zgaruvchilar bilan qo'lga kiritilishi mumkin.