Yadda za a kawo jayayya zuwa Bash-Script

Umurnai, haɗawa da misalai

Kuna iya rubuta rubutun bashi don haka yana karɓar muhawara da aka ƙayyade lokacin da ake kira rubutun daga layin umarni. Ana amfani da wannan hanya lokacin da rubutun ya yi aiki daban-daban kamar yadda ya dace da abubuwan da aka shigar da su (da muhawarar).

Alal misali, kuna iya samun rubutun da ake kira "stats.sh" wanda ke yin wani aiki akan fayil, kamar ƙidaya kalmominsa. Idan kana so ka iya amfani da wannan rubutun a kan fayiloli da dama, zai fi kyau a sanya sunan fayil a matsayin hujja, don haka zaka iya amfani da wannan rubutun don dukkan fayilolin da za a sarrafa su. Alal misali, idan sunan fayil ɗin za a sarrafa shi ne "waƙabi", za ku shigar da wannan umurnin:

sh stats.sh songlist

An kawo jayayya a cikin rubutun ta amfani da masu canji $ 1, $ 2, $ 3, da dai sauransu, inda $ 1 yana nufin gardama na farko, $ 2 zuwa gardama na biyu, da sauransu. An kwatanta wannan a misali mai zuwa:

FILE1 = $ 1 wc $ FILE1

Don karantawa, sanya madaidaiciya tare da sunan da aka kwatanta da darajar gardama na farko ($ 1), sannan kuma kira kalmar amfani mai amfani ( wc ) akan wannan madaidaicin ($ FILE1).

Idan kana da ƙididdiga masu mahimmanci, za ka iya amfani da nauyin "$ @", wanda shine tsararren duk matakan shigarwa. Wannan yana nufin za ka iya amfani da ƙuƙwalwar don yin amfani da juna daidai yadda aka kwatanta a misali mai zuwa:

don FILE1 a "$ @" yi wc $ FILE1 yi

Ga misali na yadda za a kira wannan rubutun tare da muhawara daga layin umarni:

sh stats.sh songlist1 songlist2 songlist3

Idan wata hujja tana da sarari, kana buƙatar haɗa shi tare da alamu guda ɗaya. Misali:

sh stats.sh 'songlist 1' 'songlist 2' 'listlist 3'

Sau da yawa an rubuta rubutun don haka mai amfani zai iya yin jayayya a kowane tsari ta yin amfani da alamu. Tare da hanyar flags, za ka iya sanya wasu daga cikin muhawara zaɓin.

Bari a ce kana da rubutun da ke dawo da bayanan daga tushen bayanan da aka kaddamar da sigogi da aka ƙayyade, kamar "sunan mai amfani", "kwanan wata", da "samfurin", kuma ya haifar da rahoto a cikin "tsari". Yanzu kuna so ku rubuta rubutunku domin ku iya shiga a cikin waɗannan sigogi lokacin da ake kira rubutun. Zai iya kama da wannan:

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

Bash yana taimakawa wannan aikin tare da aikin "getopts". Ga misali na sama, zaku iya amfani da toopts kamar haka:

Wannan madaidaicin lokaci ne wanda yayi amfani da aikin "getopts" da abin da ake kira "mafi girma", a cikin wannan yanayin "u: d: p: f:", don ganewa ta hanyar gardama. Maɗallin yana tafiya ta hanyar ƙuƙwalwa, wanda ya ƙunshi alamar da za a iya amfani dashi don yin jayayya, kuma ya sanya iyakar gardama da aka ba wannan alama zuwa "zaɓi" mai sauƙi. Bayanin shari'ar yana sanya darajar "zaɓin" mai sauƙi ga wani canjin duniya wanda zai iya amfani da bayan an gama karanta muhawarar.

Maza a cikin mahimmancin ma'anar cewa ana buƙatar waɗannan dabi'u don alamun daidai. A cikin misali na sama duk alamar suna biye da wani mallaka: "u: d: p: f:". Wannan yana nufin, duk flags yana buƙatar darajar. Idan, alal misali, ba'a sa ran fannonin "d" da "f" ba su da darajar, za su kasance "u: dp: f".

A mallaka a farkon mafita, misali ": u: d: p: f:", yana da ma'ana daban. Yana ba ka damar kula da sifofin da ba a wakilci a cikin mafi girma ba. A wannan yanayin ana saita darajar "zaɓin" zaɓi zuwa "?" da kuma darajar "OPTARG" an saita zuwa ga alama maras kyau. Da ba ka damar nuna saƙon kuskure wanda ya dace da sanar da mai amfani da kuskure.

Tambayoyin da ba'a riga ya fara ba da alama ana watsi da tutar by getopts. Idan ba'a ba da takaddun da aka ƙayyade a cikin fitina ba lokacin da ake kira rubutun, babu abin da zai faru, sai dai idan kun lura da wannan yanayin a cikin lambarku. Duk wani jayayya da ba a kula da tsalle-tsalle ba za'a iya kama shi tare da $ 1, $ 2, da dai sauransu.